我目前的SoapUI工作区中有50多个测试。我需要在所有这些测试中添加一个新的项目级参数。有没有办法可以使用SoapUI中的groovy控制台来做到这一点?
例如:
testRunner.testCase.testSuite.project.setPropertyValue( "SuperMan",("SuperMan"));
我可以运行它来在当前工作项目中创建属性。 有没有办法在我当前工作区的所有项目下创建它?
提前致谢。
答案 0 :(得分:3)
是的,我们可以做到这一点,但这有点棘手。
执行此操作的方法:
现在粘贴这个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步骤,您将在项目级别添加属性。
如果这可以解决您的问题,请将此标记为正确答案。
答案 1 :(得分:3)
使用testRunner
访问权限,您只需要一个级别workspace
。从这里您可以访问projects
地图并迭代每个项目添加属性:
testRunner.testCase.testSuite.project.workspace.projects.each{ key, proj ->
proj.setPropertyValue('superman','superman')
}
此代码不会在工作区中的已关闭项目上添加该属性,但不会在访问它时失败。
或者@Rao建议他的评论可以使用默认的it
对象迭代器并访问value
而不是在key, proj ->
上定义each
:
testRunner.testCase.testSuite.project.workspace.projects.each{
it.value.setPropertyValue('superman','superman')
}
为了清晰起见,我更喜欢第一种方法。
希望它有所帮助,