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

虽然我已经编写了正确的代码,但我的groovy有时无法设置Soapui项目属性,groovy,soapui,Groovy,Soapui,我在groovy代码和SoapUI方面遇到了一些问题Groovy代码有时工作正常,有时工作不正常 示例:我编写了一段groovy脚本,用于设置SoapUI的项目属性,另一段groovy脚本用于启用TestSuite和TestCase(如果禁用) 但这里的问题是,它的工作非常不一致 //To set Project Property //Get Project def getProject = testRunner.testCase.testSuite.project //Set Project

我在groovy代码和
SoapUI
方面遇到了一些问题<代码>Groovy代码有时工作正常,有时工作不正常

示例:我编写了一段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)

我不知道为什么它有时会工作,但它有时不工作,因为soapUI变量前面缺少“#”

def IP = context.expand( '${#Properties#IP}' )
下面这行就可以了。无需在此处添加“#”


有关更多语法,请参阅SoapUI

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

当您引用测试用例、测试套件或项目级属性时,应在属性扩展中添加前缀
#

就像您的例子一样,
${#Project#PropertyName}

当您引用
测试步骤名称时,不需要在属性扩展中使用前缀
#

正如您在另一个用法中所指出的,
DataSource
是一个测试步骤名称,而不是任何级别的属性,因此不需要

因此,
${DataSource#Whatever}


希望这能澄清问题。

你说的不一致是什么意思?异常?没有异常,但//在项目级别def IP=context.expand(“${Properties#IP}”)getProject.setPropertyValue(“Project_IP”,“$IP”)中设置项目IP属性实际上,当我运行这段代码时,它应该设置键,它是作为项目级属性的,但它只能设置键,但无法设置值。您好,您是对的,但我可以获取值,但无法在项目级属性中设置键和值。那是我的主要任务。现在我将该代码修改为${#Project#PropertyName},这样我就可以获取值,但无法在项目级属性中设置值,尽管我使用的代码是def getProject=testRunner.testCase.testSuite.Project//set Project-IP-property-in-Project-level def-IP=context.expand('${Properties#IP}')getProject.setPropertyValue(“Project#IP”,“$IP”)您可以通过编辑来澄清问题,或者创建一个单独的问题,因为这是不同的。您好,您是正确的,但我可以获取一些值,但无法在项目级属性中设置该键和值。这是我的主要QU。现在我将该代码修改为${#Project#PropertyName}因此,尽管我使用了代码def getProject=testRunner.testCase.testSuite.Project//set Project-IP-property-in-Project-level def-IP=context.expand(“${Properties#IP}”)getProject.setPropertyValue(“Project_-IP”,“$IP”),但我仍然能够获取值,但无法在项目级属性中设置相同的值
def TestSuite_Name = context.expand( '${DataSource#TestSuite_Name}' )