我在当前SoapUI工作区中有50多项测试。我需要在所有这些测试中添加一个新的项目级别参数。有没有一种方法可以使用SoapUI中的groovy控制台来实现这一点?
例如:
testRunner.testCase.testSuite.project.setPropertyValue( "SuperMan",("SuperMan"));
我可以运行此操作在当前工作项目中创建属性。有没有一种方法可以在我当前工作区的所有项目下创建它?
提前谢谢。
是的,我们可以这样做,但有点棘手。
方法:
- 在soapui中创建一个空的通用项目,添加空的测试套件,添加空测试用例
- 在测试用例中添加groovy脚本步骤
-
现在粘贴这个groovy代码
for(project in com.eviware.soapui.SoapUI.workspace.projectList) { if(project.open && project.name != testRunner.testCase.testSuite.project.name){ project.setPropertyValue( "TestProperty","TestValue"); } }
运行groovy步骤,您将在项目级别添加属性。
如果这解决了您的问题,请将其标记为正确的响应。
使用您的testRunner
访问权限,您只需要多一级workspace
。从这里,您可以访问projects
映射,并在每个项目上迭代添加属性:
testRunner.testCase.testSuite.project.workspace.projects.each{ key, proj ->
proj.setPropertyValue('superman','superman')
}
这段代码不会在工作区中的已关闭项目上添加属性,但访问它不会失败
或者,正如@Rao在他的评论中建议的那样,可以使用默认的it
对象迭代器并访问value
,而不是在each
:上定义key, proj ->
testRunner.testCase.testSuite.project.workspace.projects.each{
it.value.setPropertyValue('superman','superman')
}
为了清晰起见,我更喜欢第一种方法。
希望有帮助,