使用Groovy在SoapUI中创建Project属性

时间:2016-05-05 17:48:26

标签: groovy soapui

我目前的SoapUI工作区中有50多个测试。我需要在所有这些测试中添加一个新的项目级参数。有没有办法可以使用SoapUI中的groovy控制台来做到这一点?

例如:

  testRunner.testCase.testSuite.project.setPropertyValue( "SuperMan",("SuperMan"));

我可以运行它来在当前工作项目中创建属性。 有没有办法在我当前工作区的所有项目下创建它?

提前致谢。

2 个答案:

答案 0 :(得分:3)

是的,我们可以做到这一点,但这有点棘手。

执行此操作的方法:

  1. 在soapui中创建一个空的通用项目,添加空的测试套件,添加空的测试用例
  2. 在测试用例中添加一个groovy脚本步骤
  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");    
     }    
    }
    
  4. 运行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')
}

为了清晰起见,我更喜欢第一种方法。

希望它有所帮助,