Groovy SoapUI,从属性文件读取值时,回火请求数据中断

Groovy SoapUI,从属性文件读取值时,回火请求数据中断,groovy,soapui,Groovy,Soapui,我有一个groovy脚本作为测试用例中的第一个测试步骤,它的一部分如下所示: def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context) def holder = groovyUtils.getXmlHolder("SampleTestt#Request").getXml() log.info holder // get your request replacing the properties inside b

我有一个groovy脚本作为测试用例中的第一个测试步骤,它的一部分如下所示:

def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context)
def holder = groovyUtils.getXmlHolder("SampleTestt#Request").getXml()
log.info holder 
// get your request replacing the properties inside by their values
def xmlRequest = context.expand('${SampleTestt#Request}')
def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context)
def holder = groovyUtils.getXmlHolder(xmlRequest)
log.info holder.getXml()
当SampleTest测试步骤将所有元素值硬编码时,可以很好地打印请求xml

但是,如果从测试用例属性读取一些请求值,例如

${#TestCase#Id}
上述groovy脚本的错误如下:

org.apache.xmlbeans.XMLException: error: Unexpected character encountered : '$'
你能帮忙吗

谢谢。

您可以使用context.expand评估请求中的属性,然后将结果解析到xmlHolder,您的代码可能如下所示:

def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context)
def holder = groovyUtils.getXmlHolder("SampleTestt#Request").getXml()
log.info holder 
// get your request replacing the properties inside by their values
def xmlRequest = context.expand('${SampleTestt#Request}')
def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context)
def holder = groovyUtils.getXmlHolder(xmlRequest)
log.info holder.getXml()
请注意,我使用SampleTestt作为您的测试步骤请求名称,但我认为最后一个t可能是一个输入错误。。。在使用代码之前,请检查它是否是正确的请求名称

希望这有帮助