在SoapUI中使用Groovy创建项目属性

在SoapUI中使用Groovy创建项目属性,groovy,soapui,Groovy,Soapui,在我当前的SoapUI工作区中,我有50多个测试。我需要在所有这些测试中添加一个新的项目级参数。有没有一种方法可以在SoapUI中使用groovy控制台来实现这一点 例如: testRunner.testCase.testSuite.project.setPropertyValue( "SuperMan",("SuperMan")); 我可以运行此命令在当前工作项目中创建属性。 是否有一种方法可以在我当前工作区的所有项目下创建此文件 提前谢谢 是的,我们可以这样做,但有点棘手 方法: 在s

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

例如:

  testRunner.testCase.testSuite.project.setPropertyValue( "SuperMan",("SuperMan"));
我可以运行此命令在当前工作项目中创建属性。 是否有一种方法可以在我当前工作区的所有项目下创建此文件


提前谢谢

是的,我们可以这样做,但有点棘手

方法:

  • 在soapui中创建一个空的泛型项目,添加空的testsuite,添加空的testcase
  • 在测试用例中,添加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
    访问权限,您只需再增加一个级别即可。从这里,您可以访问
    projects
    map并迭代添加属性的每个项目:

    testRunner.testCase.testSuite.project.workspace.projects.each{ key, proj ->
        proj.setPropertyValue('superman','superman')
    }
    
    此代码不会在工作区中的已关闭项目上添加属性,但访问它时不会失败

    或者,正如@Rao在其评论中所建议的,可以使用默认的
    it
    对象迭代器并访问
    ,而不是在
    上定义
    键、项目->

    testRunner.testCase.testSuite.project.workspace.projects.each{ 
        it.value.setPropertyValue('superman','superman')
    }
    
    为了清晰起见,我更喜欢第一种方法


    希望有帮助,

    好吧,它很管用<代码>键
    可能不是真正需要的,但没有什么害处。@Rao为了清楚起见,我使用
    键,proj->
    ,但是是的,当然OP可以使用默认的
    并访问
    它。value
    来设置
    属性值
    :)
    。谢谢你的评论!。我的意思是,只有
    proj
    就足够了,因为
    key
    被传递而没有被使用。任何你更新的外观。谢谢你抽出时间。