SoapUI Free - Groovy Script in Property Value获取TestSuite属性

时间:2014-06-04 12:55:12

标签: testing groovy soapui

我正在使用免费(非PRO)SoapUI 5.0,我在测试套件中有一个属性列表。 然后,我有许多测试步骤,每个步骤都与Test Suite属性具有相同的名称。

我正在尝试在Test Step属性中编写Groovy脚本,以检索具有相同名称的Test Suite属性的值。

例如:

  • Test Suite的属性为 colour_red ,值为12345。
  • 在Test Suite中是一个测试用例,其测试步骤也称为 colour_red
  • colour_red 测试步骤中,属性为“info”。
  • 我正在尝试将“info”的属性值设置为Test Suite 属性 colour_red 值12345。

到目前为止我在“info”属性值中的内容:

${=new GroovyShell().evaluate(testRunner.testCase.testSuite.project.getPropertyValue(context.getCurrentStep().getLabel()))}

我不确定我是否需要新的GroovyShell()。评估位,但如果没有它,它仍然无效。我无法确切地说出正在拾取的内容,但它不是具有相同名称的Test Suite属性的值。

从我可以看到的脚本应该检索当前的测试步骤名称( colour_red ),然后在测试套件中查找名为该属性的属性。

我这样做的原因是我在Test Suite属性值中有数据需要在众多测试用例之间共享(所有测试用例都有很多测试步骤)。 没有PRO版本我很挣扎,但我认为使用Groovy应该有办法做到这一点。

感谢任何帮助,谢谢。

2 个答案:

答案 0 :(得分:1)

我认为研究房地产扩张会对你有所帮助。 http://www.soapui.org/Scripting-Properties/property-expansion.html

让你去...

您可以使用以下动态参考轻松引用属性值:

${#TestSuite#colour_red}之类的引用作为“info”的属性值。

现在,info属性值被动态设置为TestSuite的colour_red属性值。

答案 1 :(得分:0)

我认为这可以满足您的需求:

def myStep = context.currentStep.name
def myValue = context.expand( '${#Project#' + myStep + '}' )
testRunner.testCase.setPropertyValue("info", myValue)

我把它变得比它需要的更冗长。我不认为-Pro会帮助你,除非我误解了你的需要。