Random 从列表中随机选择一个值,然后在SOAP请求测试步骤中使用该值

Random 从列表中随机选择一个值,然后在SOAP请求测试步骤中使用该值,random,groovy,soapui,Random,Groovy,Soapui,我有一个简短的值列表:[选项1,选项2,选项3] 对于测试的每个循环,我想从这个列表中随机选取一个值,并将其分配给一个变量,然后在Soap测试步骤中使用该变量 我有一个Groovy脚本TestStep: def z = ["Option_1", "Option_2", "Option_3"] Random rnd = new Random() def option = z[rnd.nextInt(z.size)] testRunner.testCase.setPropertyValue( "

我有一个简短的值列表:[选项1,选项2,选项3]

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

我有一个Groovy脚本TestStep:

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都非常陌生。任何帮助都将不胜感激。

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

但您尝试访问该属性的方式应按以下方式进行

因为您正在尝试访问testcase属性。您应该使用下面的语法

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

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

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

创建数据源步骤:

创建一个属性,即输出 选择数据生成器作为数据源 行数=1 属性类型:集合中的值 自定义值: 在自定义值字段中添加/单击:选项_1 方案2的idem,然后方案3 再添加/单击一次空字段=>我不知道为什么它会这样工作,但如果不这样做,random将只考虑前两个数据 生成方式:随机 如果启动该循环,“输出”的内容将随机成为您的自定义值之一。 然后,您将只需要像通常对其他步骤一样使用output属性,因为您是SOAPUI新手,在将使用随机值的步骤中,单击右键并在DataSource步骤上执行“获取数据”以使用随机输出

你可能也有兴趣看看这个


祝你好运

除了z,看起来很合理。大小需要是z大小。。。有什么问题吗?谢谢Gaurav,TestCase关键字是我遗漏的关键信息。我认为您给我的代码在“TestCase”之前缺少一个符号,但是下面的代码工作得非常好${TestCaseselectedOption}您能接受这个答案吗?我已经做了更正,这看起来很棒,而且是一种处理随机性的更加精简的方式。如果我们要进一步实现自动化,我将不得不考虑使用SoapUI Pro。非常感谢。组。。。事实上,我没有问你是否在使用专业版;