尝试编写一个Groovy脚本来构建动态变量以在SoapUI中运行测试用例

时间:2020-05-06 11:52:35

标签: groovy soapui

我们已经有了可以运行的groovy运行程序脚本,我正在尝试对其进行修改,以使团队更容易选择和取消选择要运行的环境并进行测试。

所有可能的测试和环境在托管groovy脚本的测试用例中都有其自己的自定义属性。 如果自定义属性设置为0,则测试不会运行。如果不是0,则测试将运行。

我的脚本通过查看每个环境并测试自定义属性来构建2个变量,并且在脚本的其余部分读取所构建脚本的第一部分之前,该脚本都可以正常工作。

这是变量构建器脚本之一。

<FlatList
  ...
  extraData={this.state}
/>

此脚本的预期结果是,如果将env-7031的自定义属性设置为1并将env-7131设置为0,则runEnvironmet的值为['7031']

当我运行此脚本时,会收到以下日志:

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

我们可以看到“环境”看起来不尽如人意。 [代替['7031']

是否可以使用groovy以这种方式构建变量?

TL:DR

试图获取硬编码变量

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: [

来自使用自定义属性从头开始构建该变量的脚本。 像这样的模拟

runEnvironment = ['7031']

1 个答案:

答案 0 :(得分:0)

我的问题是我正在构建文本字符串。 该脚本需要一个数组才能通过。

这是我学会创建阵列的方法。 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
相关问题