首页 文章

有时候我的groovy无法设置Soapui Project属性,虽然我已经编写了正确的代码

提问于
浏览
-1

我在使用groovy代码和 SoapUI 时遇到了一些问题 . Groovy 代码可以正常工作,有时则不行 .

Example: 我编写了一段groovy脚本,用于设置SoapUI的项目属性和另一段groovy脚本,以启用TestSuite和TestCase,如果它被禁用 .

但问题在这里,它的工作非常不一致 .

//To set Project Property
//Get Project
def getProject = testRunner.testCase.testSuite.project

//Set Project IP Property in Project level
def IP = context.expand( '${Properties#IP}' )
getProject.setPropertyValue( "Project_IP", "$IP")

//To enable TestSuite if its disable
 //get Project
def getProject = context.testCase.testSuite.project
 //get Test Suite Name
def TestSuite_Name = context.expand( '${DataSource#TestSuite_Name}' )
log.info TestSuite_Name

//Enable the TestSuite
getProject.getTestStepByName(TestSuite_Name).setDisabled(false)

2 回答

  • 0

    我不知道它为什么有时工作但有时因为soapUI变量缺少“#”而无法正常工作

    def IP = context.expand( '${#Properties#IP}' )
    

    以下行是好的 . 这里不需要添加“#”

    def TestSuite_Name = context.expand( '${DataSource#TestSuite_Name}' )
    

    有关更多语法,请参阅SoapUI Scripting Page

  • 0

    看起来你对这些用法感到困惑,这是 SoapUI 的正确预期行为 .

    当您引用测试用例,测试套件或项目级别属性时,在属性扩展中 # should be prefixed .
    就像你的情况一样, ${#Project#PropertyName}

    # is not required to prefix 在您引用 Test Step Name 时的属性扩展中 .

    正如您在其他用法中所指出的那样, DataSource 是测试步骤名称,而不是任何级别的属性,因此不需要 # .
    因此, ${DataSource#Whatever}

    希望这澄清一下 .

相关问题