结合就绪! Groovy中的API测试用例属性

时间:2017-01-12 21:02:39

标签: groovy ui-testing

刚开始学习ReadyApi和Groovy, 我想使用Groovy脚本将3个项目属性组合成单个属性,作为我的SoapUI测试中的一个步骤:

Prop1 = "\\ap52\x$"
Prop2 = "\folder1\folder2\"
Prop3 = "1234567890123456"

其中:

  • Prop1是可以更改的网络资源
  • Prop2是一个不太可能改变的文件夹位置
  • Prop3实际上是一个随机的16位数字,从另一个步骤生成并填充到Prop3中

我需要创建PropX,以便将属性转移到文件等待步骤。

带有静态文本的脚本的期望结果:

PropX = "\\ap52\x$\folder1\folder2\filename_1234567890123456_??????????.xml"

2 个答案:

答案 0 :(得分:0)

动态生成Ready的基本环境! Groovy的API测试用例属性为Ready! API Dynamic PropertiesProperty ExpansionsVariable Access in Groovy Script Steps

由于脚本将动态执行,因此您无需担心底层属性值发生变化的上下文。因此,属性值的字符串连接是一种可行的方法。

作为demonstrated elsewhere,Groovy中高效字符串连接的最佳选择是避免基于Java-ish +的方法并释放GString interpolation的强大功能:

def prop1 = testRunner.testCase.testSuite.project.getPropertyValue('Prop‌​1');
def prop2 = testRunner.testCase.testSuite.project.getPropertyValue('Prop‌​2');
def prop3 = testRunner.testCase.testSuite.project.getPropertyValue('Prop‌​3');
testRunner.testCase.testSuite.project.setPropertyValue('file‌​WaitLoc', "${prop1}${prop2}response_${prop3}_??????????.xml")

答案 1 :(得分:0)

我自己发现了......

def string1 = testRunner.testCase.testSuite.project.getPropertyValue("Prop‌​1"); 
def string2 = testRunner.testCase.testSuite.project.getPropertyValue("Prop‌​2"); 
def string3 = testRunner.testCase.testSuite.project.getPropertyValue("Prop‌​3"); 
testRunner.testCase.testSuite.project.setPropertyValue("file‌​WaitLoc", string1 + string2 + "response_" + string3 + "_??????????.xml")

但是,当将此属性值发送到ReadyAPI中的“等待文件”步骤时,这仍然不起作用...它不喜欢fileName中的通配符用法,即“??????????”。 我必须让开发删除用于文件名中唯一命名的添加字符,以便“文件等待”步骤起作用。