从列表中随机选择一个值,然后在 SOAP 请求 TestStep 中使用该值

Choose a value at random from a list, then use this value in a SOAP Request TestStep

我有一个简短的值列表:[Option_1、Option_2、Option_3]。

对于我测试的每个循环,我想从这个列表中随机选择一个值并将其分配给一个变量,然后我可以在 Soap 测试步骤中使用它。

我有一个 Groovy 脚本测试步骤:

def z = ["Option_1", "Option_2", "Option_3"]
Random rnd = new Random()

def option = z[rnd.nextInt(z.size)]

testRunner.testCase.setPropertyValue( "selectedOption", option )

在我的 Soap 测试步骤中,我尝试像这样调用变量:

<value>${#selectedOption}</value>

我离这里很近吗?我对 SoapUI 和 Groovy 都非常陌生。任何帮助将不胜感激。

您的代码是正确的,并且可以正确生成各种值,如下所示

但是您尝试访问 属性 的方式应该按以下方式完成。

由于您正在尝试访问 测试用例 属性。您应该使用以下语法

<value>${#TestCase#selectedOption}</value>

缺少此 TestCase 关键字。希望您在测试用例级别使用此 属性。如果你想在不同的测试用例中使用,你可以在套件级别设置然后使用 ${TestSuite#selectedOption}

实际上 SOAPUI (Pro) 提供了在循环中生成随机数据的可能性。 如果使用数据源循环,则可以使用 "Data Generator" 作为数据源。我很快就试过了,这可能符合你的要求。

创建数据源步骤:

  • 创建一个属性(即输出)
  • select 作为数据源的数据生成器
  • 行数 = 1
  • 属性 类型:集合中的值
  • 自定义值:
    • add/click 在自定义值字段中:Option_1 同上 Option_2 然后 Option_3
    • add/click 再一次(空字段)=> 我不知道为什么会这样,但如果你不这样做,随机将只考虑前两个数据
  • 生成模式:随机

如果您启动该循环,'output' 的内容将随机成为您的自定义值之一。 然后,您只需像通常对其他步骤所做的那样使用输出 属性(因为您是 SOAP UI 的新手,在将使用随机值的步骤中,单击右键并执行 'Get Data' 在 DataSource 步骤上使用随机输出)

您可能也有兴趣看看这个 use case

祝你好运;)