刚开始学习ReadyApi和Groovy, 我想使用Groovy脚本将3个项目属性组合成单个属性,作为我的SoapUI测试中的一个步骤:
Prop1 = "\\ap52\x$"
Prop2 = "\folder1\folder2\"
Prop3 = "1234567890123456"
其中:
我需要创建PropX,以便将属性转移到文件等待步骤。
带有静态文本的脚本的期望结果:
PropX = "\\ap52\x$\folder1\folder2\filename_1234567890123456_??????????.xml"
答案 0 :(得分:0)
动态生成Ready的基本环境! Groovy的API测试用例属性为Ready! API Dynamic Properties,Property Expansions和Variable Access in Groovy Script Steps。
由于脚本将动态执行,因此您无需担心底层属性值发生变化的上下文。因此,属性值的字符串连接是一种可行的方法。
作为demonstrated elsewhere,Groovy中高效字符串连接的最佳选择是避免基于Java-ish +
的方法并释放GString interpolation的强大功能:
def prop1 = testRunner.testCase.testSuite.project.getPropertyValue('Prop1');
def prop2 = testRunner.testCase.testSuite.project.getPropertyValue('Prop2');
def prop3 = testRunner.testCase.testSuite.project.getPropertyValue('Prop3');
testRunner.testCase.testSuite.project.setPropertyValue('fileWaitLoc', "${prop1}${prop2}response_${prop3}_??????????.xml")
答案 1 :(得分:0)
我自己发现了......
def string1 = testRunner.testCase.testSuite.project.getPropertyValue("Prop1");
def string2 = testRunner.testCase.testSuite.project.getPropertyValue("Prop2");
def string3 = testRunner.testCase.testSuite.project.getPropertyValue("Prop3");
testRunner.testCase.testSuite.project.setPropertyValue("fileWaitLoc", string1 + string2 + "response_" + string3 + "_??????????.xml")
但是,当将此属性值发送到ReadyAPI中的“等待文件”步骤时,这仍然不起作用...它不喜欢fileName中的通配符用法,即“??????????”。 我必须让开发删除用于文件名中唯一命名的添加字符,以便“文件等待”步骤起作用。