了解环境
环境是可以在以下字段中引用的变量集合: 响应程序或操作套件,以及测试配置。你可以使用环境变量来指定端点、数据库表名、连接属性,如登录凭证等。变量的名称将替换为活动环境中指定的值。通过切换哪个环境是“活动”环境,你可以在运行时动态切换特定于环境的值。
环境还可以用来切换虚拟资产模式。例如,假设你配置了一个响应程序来将流量转发到外部端点。通过为端点使用环境变量(而不是固定值),你可以轻松地将转发到不同端点的消息重定向。这允许 .pva 文件充当代理;一个环境可以指向实际资产,而另一个环境可以指向虚拟资产。
当你从定义(如 WSDL)生成 Parasoft 资产时,将自动定义环境,但是你也可以手动定义环境,如下所述。
手动定义环境
创建和切换环境是通过 下面的Environments 分支来实现的:
测试套件的测试用例资源管理器或响应程序套件的虚拟资产资源管理器节点。
在创建新的测试套件或响应程序套件时,默认情况下会创建 Environments 分支。
若要创建一个新的环境,请完成以下内容:
- 右键单击 Environments 节点,然后选择 NewEnvironment。
- 重命名环境(可选)并单击表中的字段来定义环境变量和值。
屏蔽变量值
你可以右键单击变量,并选择 Mask Variable Value 以将该值隐藏在接口中。
屏蔽值可防止 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
"。
getEnvironmentVariableValue(String)
" 的方法,它将查找并返回环境变量的当前值。这将允许你在脚本中使用该值。注意
${}
,你可以通过添加反斜杠来转义该序列。例如,如果 SOAtest 或 Virtualize 遇到值 "\${HOST}
" ,则它将使用值 "${HOST}
”,并且不会尝试解析变量。还要注意,环境变量名是区分大小写的。从 GUI 更改环境
若要更改活跃的环境,请完成以下内容:
- 右键单击表示要使其变得活跃的环境的节点,然后选择 Set as Active Environment。
从命令行更改环境
除了能够从 GUI 中选择活动环境之外,还可以使用 -environment
选项从命令行切换活动环境。 有关详细信息,请查阅 Testing from the Command Line Interface - soatestcli 。
使用测试配置重写环境
若要将测试配置设置为始终使用特定的环境进行测试执行(无论在测试用例资源管理器中激活的是什么环境),请:
- 设置 Execution 选项卡中测试配置的 Override default Environment during Test Execution 选项卡。请查阅 Execution Tab Settings:SOAtest 测试配置设置#Execution Tab Settings - Defining How Tests are ExecuteDefining How Tests are Executed 以获得更多详情。
示例使用说明
假设你正在本地机器上开发一个服务。代码在本地工作之后,将代码提交给源代码控制,并启动针对登台服务器的构建过程。你希望创建一组测试,这些测试将同时针对本地机器和登台服务器进行测试,只需要进行很少的修改。这是使用 SOAtest 环境的完美案例。
首先为你的新 .tst 文件创建一个 localhost 环境。SOAtest 的 New .tst 向导将为你提供一些基本的环境变量。如果你的 WSDL 在两台机器上不同,则可以将 WSDL URI 分解为变量。如果跨机器的 WSDL 位置是常量,则可以选择分解端点 URI。
下一步是确定项目中的其他特定于机器的设置,并为它们创建环境变量。例如,假设你的测试套件中有一个 JMS 步骤,则需要根据是本地主机测试还是登台测试将消息发送到不同的队列。首先,创建一个新的环境变量,我们称其为 "JMS_REPLY_QUEUE
"。接下来,重新访问 SOAP 客户机,转到 JMS 设置,并输入 ${JMS_REPLY_QUEUE}
作为 JMSReplyTo 字段的值。
一旦创建了 localhost 环境,就可以复制和粘贴现有环境,并将新环境重命名为“Staging Environment”。然后,只需修改每个变量的值,使它们反映登台服务器的设置。
一旦环境设置好后,针对各种环境的测试就简单地选择活动环境。如果想在本地机器上进行测试,则可以将活动环境设置为“Localhost Environment”。这将使用 localhost 环境中定义的值运行测试。若要对登台服务器进行测试,请将“登台服务器”环境设置为活动的,并使用其值。
导出、导入和引用环境
你可能会发现许多配置设置,比如服务器名和端口,在多个项目中都是通用的。与其复制这些设置,不如将环境配置导出到外部文件,然后在另一个项目中导入或引用值。
导出环境
若要导出一个环境,请完成以下内容:
- 右键单击表示要导出的环境的节点,然后选择 Export Environment。
- 在打开的文件选择器中,为导出的环境文件指定一个位置。
环境配置将在基于 xml 的文本文件中编写。如果选择了一个环境,则将创建一个包含单个环境的 *.env
文件。 如果选择了多个环境,则将创建包含所有所选环境 *.envs
或环境集的文件。
导入环境
导入环境时,你将从外部环境文件中将值的副本导入到项目中。对 XML 文件的进一步修改将不会反映在你的项目中。
若要导入一个环境,请完成以下内容:
- 右键单击 Environments 节点,然后选择 Import Environment。
- 在打开的文件选择器中,指定要导入的环境文件的位置。
引用环境
引用环境是跨多个项目共享单个环境配置的最有效方法。使用环境引用,你可以轻松地从一个位置修改多个项目的配置。
若要引用一个环境,请完成以下内容:
- 右键单击 Environments 节点,然后选择 Reference Environment。
- 在右侧打开的配置面板中,指定要引用的环境文件的位置。
注意,当引用环境配置时,不能直接编辑环境中的环境变量。但是,你的项目将始终使用引用 *.env
文件中反映的值。修改 *.env
文件将把更改传播到引用它的所有项目。