本主题说明了如何配置并适用不同的环境。章节目录:

了解环境

 环境是变量的集合,可在测试配置的字段中引用。您可以使用环境变量来指定端点、数据库表名、连接属性(如登录凭据)等。变量名称将被活动环境中的指定值取代。通过切换哪个环境是“活动”环境,您可以在运行时动态切换特定于环境的值。

当您从定义(如 WSDL)生成 Parasoft 资产时,将自动定义环境,但是您也可以手动定义环境,如下所述。

手动定义环境

创建和切换环境可通过测试套件的测试用例浏览器节点中的环境分支完成

在创建新的测试套件时,默认情况下会创建环境分支。

若要创建一个新的环境,请完成以下内容:

  1. 右键点击环境节点,然后选择新建环境
  2. 重命名环境(可选)并点击表中的字段来定义环境变量和值。 

掩盖变量值

您可以右键点击变量,并选择掩盖变量值以在界面中隐藏该值。

掩盖值可防止 REST 客户端显示已解析值。


在测试和工具中使用环境变量 

可以使用特殊的语法在测试或工具配置字段中访问环境变量。若要引用变量,请按以下字符顺序将变量名括起来:${env_name}

例如,如果您有一个名为 HOST 的变量,您可以通过输入:${HOST}。变量引用可以出现在字段中的任何位置。

在数据源编辑器中,使用 soa_env 前缀来引用环境变量。例如,${soa_env:Variable}/calc_values.xlsx

变量引用可以出现在字段中的任何位置。例如,假设您的环境包含变量 HOST = localhost 和 PORT = 8080,并在 SOAP 客户端中有一个 Endpoint 字段,其中包含:"http://${HOST}:${PORT}/Service".  在运行测试时,端点使用的值将为“http://localhost:8080/Service”。

您可以通过可扩展性 API 从扩展工具/脚本访问环境变量值。ExtensionToolContext 现在有一个名为“getEnvironmentVariableValue(String)”的方法,它将查找并返回环境变量的当前值。这将允许您在脚本中使用该值。

注意

如果您的测试用例或工具需要字符序列 ${},您可以通过添加反斜杠来转义该序列。例如,如果 SOAtest 或 Virtualize 遇到值“\${HOST}”,则它将使用值“${HOST}”,并且不会尝试解析变量。还要注意,环境变量名是区分大小写的。

从 GUI 更改环境

如要更改处于活动状态的环境,请右键点击要激活的环境节点,然后选择设置为活动环境

从命令行更改环境

除了能够从 GUI 中选择活动环境之外,还可以使用 -environment 选项从命令行切换活动环境。  详情请参阅在命令行界面使用 - soatestcli 进行测试

使用测试配置重写环境

要将某个测试配置设置为始终使用特定环境执行测试(无论测试用例浏览器中使用哪个活动环境),请在执行选项卡中设置该测试配置的在测试执行期间覆盖缺省的环境配置选项。详情请参阅执行选项卡设置:定义如何执行测试

示例使用说明

假设您正在本地机器上开发一个服务。代码在本地工作之后,将代码提交给源码控制,并启动针对登台服务器的构建过程。您希望创建一组测试,这些测试将同时针对本地机器和登台服务器进行测试,只需要进行很少的修改。这是使用 SOAtest 环境的完美案例。

首先为您的新 .tst 文件创建一个 localhost 环境。SOAtest 的新建 .tst 向导将为您提供一些基本的环境变量。如果您的 WSDL 在两台机器上不同,则可以将 WSDL URI 分解为变量。如果跨机器的 WSDL 位置是常量,则可以选择分解端点 URI。

下一步是确定项目中的其他特定于机器的设置,并为它们创建环境变量。例如,假设您的测试套件中有一个 JMS 步骤,则需要根据是本地主机测试还是登台测试将消息发送到不同的队列。首先,创建一个新的环境变量,我们称其为“JMS_REPLY_QUEUE”。接下来,重新访问 SOAP 客户端,转到 JMS 设置,并输入 ${JMS_REPLY_QUEUE} 作为 JMSReplyTo 字段的值。

一旦创建了 localhost 环境,就可以复制和粘贴现有环境,并将新环境重命名为“预发布环境”。然后,只需修改每个变量的值,使它们反映登台服务器的设置。

一旦环境设置好后,针对各种环境的测试就简单地选择活动环境。如果想在本地机器上进行测试,则可以将活动环境设置为“Localhost Environment”。这将使用 localhost 环境中定义的值运行测试。若要对预备服务器进行测试,请将“预备服务器”环境设置为活动的,并使用其值。

导出、导入、引用和编辑环境

您可能会发现许多配置设置,比如服务器名和端口,在多个项目中都是通用的。与其复制这些设置,不如将环境配置导出到外部文件,然后在另一个项目中导入或引用值。

导出环境

若要导出一个环境,请完成以下内容:

  1. 右键点击表示要导出的环境的节点,然后选择导出环境
  2. 在打开的文件选择器中,为导出的环境文件指定一个位置。

环境配置将在基于 xml 的文本文件中编写。如果选择了一个环境,则将创建一个包含单个环境的 *.env 文件。如果选择了多个环境,则将创建包含所有所选环境 *.envs 或环境集的文件。

导入环境

导入环境时,您将从外部环境文件中将值的副本导入到项目中。对 XML 文件的进一步修改将不会反映在您的项目中。

若要导入一个环境,请完成以下内容:

  1. 右键点击环境节点,然后选择导入环境
  2. 在打开的文件选择器中,指定要导入的环境文件的位置。

引用环境

引用环境是跨多个项目共享单个环境配置的最有效方法。使用环境引用,您可以轻松地从一个位置修改多个项目的配置。

若要引用一个环境,请完成以下内容:

  1. 右键点击环境节点,然后选择引用环境
  2. 在右侧打开的配置面板中,指定要引用的环境文件的位置。

注意,当引用环境配置时,不能直接编辑环境中的环境变量。但是,您的项目将始终使用引用 *.env 文件中反映的值。修改 *.env 文件将把更改传播到引用它的所有项目。

编辑环境(.env)文件

环境(.env)文件是基于 XML 的文本文件,可以手动编辑。建议不要尝试从头开始创建 .env 文件,而是按照导出环境中的描述导出一个环境作为模板。导出环境后,可以在任何文本编辑器中打开进行修改。它会与下面的示例类似。

.env XML 示例
<?xml version="1.0" encoding="UTF-8"?>
<Environment xmlns="http://www.parasoft.com/schema/environment/1.0"
             name="New Environment">
   <Variable>
      <Name>Name1</Name>
      <Value mask="false">Value1</Value>
   </Variable>
   <Variable>
      <Name>Name2</Name>
      <Value mask="false">Value2</Value>
   </Variable>
</Environment>

现有变量可直接编辑。如需添加新变量,可复制现有变量(包括 <Variable></Variable> 标记之间的所有内容)并粘贴到新行,然后根据需要更改名称和值。请注意,不应手动修改掩盖的值,也不应尝试手动创建掩盖的值;只能在 UI 中使用掩盖的值。

  • No labels