尝试编写一个 groovy 脚本来为 SoapUI 中的 运行 测试用例构建动态变量
Trying to write a groovy script to build dynamic variables to run test cases in SoapUI
我们已经有 groovy 运行ner 脚本可以工作,我正在尝试修改它以使其更容易与 select 和 deselect 环境和测试 运行.
所有可能的测试和环境在托管 groovy 脚本的测试用例中都有自己的自定义 属性。
如果自定义 属性 设置为 0,则测试不会 运行。如果它是 0,测试将 运行.
我的脚本通过查看每个环境和测试自定义 属性 构建了 2 个变量,并且它工作正常,直到脚本的其余部分读取脚本构建的第一部分的变量。
这是变量生成器脚本之一。
runEnv = "["
// Env. 7031
if (testRunner.testCase.getPropertyValue( 'Env-7031' ) == '1')
{runEnv = runEnv + "'7031'"}
// Env. 7131
if (testRunner.testCase.getPropertyValue( 'Env-7031' ) == '1')
// runs if a comma is needed to separate values
{if (testRunner.testCase.getPropertyValue( 'Env-7131' ) == '1')
{runEnv = runEnv + ",'7131'"}}
else
// runs if value is the first in line and doesnt need comma
{if (testRunner.testCase.getPropertyValue( 'Env-7131' ) == '1')
{runEnv = runEnv + "'7131'"}}
// Adding the end of runEnv
runEnv = runEnv + "]"
// Verification message confirming what environment(s) will be tested
log.info 'Environment Selection is: ' + runEnv
runEnvironment = runEnv
如果 env-7031 的自定义 属性 设置为 1 且 env-7131 设置为 0,则此脚本的预期结果是 运行Environmet 的值为 ['7031']
当我运行这个脚本时,我得到这个日志:
Wed May 06 07:09:38 EDT 2020:INFO:Environment Selection is: ['7031']
Wed May 06 07:09:38 EDT 2020:INFO:Test Case Selection is: ['Build-Deploy - All Tables']
Wed May 06 07:09:38 EDT 2020:INFO:Release Artifact Runner
Wed May 06 07:09:38 EDT 2020:INFO:Start Test Runner
Wed May 06 07:09:38 EDT 2020:INFO:Environment: [
我们可以看到环境没有正常显示。 [ 而不是 ['7031']
是否可以使用 groovy 以这种方式构建变量?
TL:DR
尝试获取硬编码变量
runEnvironment = ['7031']
来自使用自定义属性从头开始构建该变量的脚本。
喜欢这个模拟
runEnvironment = '[' + "'7031'" + ']'
我的问题是我正在构建一个文本字符串。
该脚本需要一个数组才能通过。
这就是我学会创建数组的方式。 How to define array in Groovy soapUI?
这是我结束的脚本:
def maxEnv = 0
// defining how many environments the array will include
// Env. 7031
if (testRunner.testCase.getPropertyValue( 'Env-7031' ) == '0'){}else{
testRunner.testCase.setPropertyValue( 'Env-7031', '1' )
maxEnv = maxEnv + 1 }
// Env. 7131
if (testRunner.testCase.getPropertyValue( 'Env-7131' ) == '0'){}else{
testRunner.testCase.setPropertyValue( 'Env-7131', '1' )
maxEnv = maxEnv + 1 }
log.info maxEnv ("Environments")
// Building runEnv array
def runEnv = new Object[maxEnv]
curEnv = 99
// Env. 7031
if (testRunner.testCase.getPropertyValue( 'Env-7031' ) == '1')
{if (curEnv == 99){curEnv = 0}else{curEnv = curEnv + 1)
runEnv[curEnv] = '7031'} else {}
// Env. 7131
if (testRunner.testCase.getPropertyValue( 'Env-7131' ) == '1')
{if (curEnv == 99){curEnv = 0}else{curEnv = curEnv + 1)
runEnv[curEnv] = '7131'} else {}
runEnvironment = runEnv
我们已经有 groovy 运行ner 脚本可以工作,我正在尝试修改它以使其更容易与 select 和 deselect 环境和测试 运行.
所有可能的测试和环境在托管 groovy 脚本的测试用例中都有自己的自定义 属性。 如果自定义 属性 设置为 0,则测试不会 运行。如果它是 0,测试将 运行.
我的脚本通过查看每个环境和测试自定义 属性 构建了 2 个变量,并且它工作正常,直到脚本的其余部分读取脚本构建的第一部分的变量。
这是变量生成器脚本之一。
runEnv = "["
// Env. 7031
if (testRunner.testCase.getPropertyValue( 'Env-7031' ) == '1')
{runEnv = runEnv + "'7031'"}
// Env. 7131
if (testRunner.testCase.getPropertyValue( 'Env-7031' ) == '1')
// runs if a comma is needed to separate values
{if (testRunner.testCase.getPropertyValue( 'Env-7131' ) == '1')
{runEnv = runEnv + ",'7131'"}}
else
// runs if value is the first in line and doesnt need comma
{if (testRunner.testCase.getPropertyValue( 'Env-7131' ) == '1')
{runEnv = runEnv + "'7131'"}}
// Adding the end of runEnv
runEnv = runEnv + "]"
// Verification message confirming what environment(s) will be tested
log.info 'Environment Selection is: ' + runEnv
runEnvironment = runEnv
如果 env-7031 的自定义 属性 设置为 1 且 env-7131 设置为 0,则此脚本的预期结果是 运行Environmet 的值为 ['7031']
当我运行这个脚本时,我得到这个日志:
Wed May 06 07:09:38 EDT 2020:INFO:Environment Selection is: ['7031']
Wed May 06 07:09:38 EDT 2020:INFO:Test Case Selection is: ['Build-Deploy - All Tables']
Wed May 06 07:09:38 EDT 2020:INFO:Release Artifact Runner
Wed May 06 07:09:38 EDT 2020:INFO:Start Test Runner
Wed May 06 07:09:38 EDT 2020:INFO:Environment: [
我们可以看到环境没有正常显示。 [ 而不是 ['7031']
是否可以使用 groovy 以这种方式构建变量?
TL:DR
尝试获取硬编码变量
runEnvironment = ['7031']
来自使用自定义属性从头开始构建该变量的脚本。 喜欢这个模拟
runEnvironment = '[' + "'7031'" + ']'
我的问题是我正在构建一个文本字符串。 该脚本需要一个数组才能通过。
这就是我学会创建数组的方式。 How to define array in Groovy soapUI?
这是我结束的脚本:
def maxEnv = 0
// defining how many environments the array will include
// Env. 7031
if (testRunner.testCase.getPropertyValue( 'Env-7031' ) == '0'){}else{
testRunner.testCase.setPropertyValue( 'Env-7031', '1' )
maxEnv = maxEnv + 1 }
// Env. 7131
if (testRunner.testCase.getPropertyValue( 'Env-7131' ) == '0'){}else{
testRunner.testCase.setPropertyValue( 'Env-7131', '1' )
maxEnv = maxEnv + 1 }
log.info maxEnv ("Environments")
// Building runEnv array
def runEnv = new Object[maxEnv]
curEnv = 99
// Env. 7031
if (testRunner.testCase.getPropertyValue( 'Env-7031' ) == '1')
{if (curEnv == 99){curEnv = 0}else{curEnv = curEnv + 1)
runEnv[curEnv] = '7031'} else {}
// Env. 7131
if (testRunner.testCase.getPropertyValue( 'Env-7131' ) == '1')
{if (curEnv == 99){curEnv = 0}else{curEnv = curEnv + 1)
runEnv[curEnv] = '7131'} else {}
runEnvironment = runEnv