在我的testSuite中,已添加了四个请求,最后一步是 JdbcRequest 。
运行此 JdbcRequest 步骤后,我正在尝试从响应中获取电话号码。为此,我在 JdbcRequest 步骤的脚本断言中编写了以下脚本。
import groovy.util.*
import groovy.lang.*
import com.eviware.soapui.model.testsuite.*
def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )
def responseHolder = groovyUtils.getXmlHolder( context.responseAsXml )
def pNo = responseHolder.getNodeValue("//*:Results/*:ResultSet/*:Row/*:PHONE_NUMBER")
log.info pNo
testRunner.testCase.setPropertyValue("JdbcPhoneNo",pNo) // Not storing in the property
我将使用 Groovy脚本执行这三个请求,即第一步。 完成执行后( JdbcRequest ),它不会将电话号码存储在脚本断言中,并显示为 NULL 。我尝试了以下方法,但没有运气。
//def x = messageExchange.modelItem.testStep.testCase.setPropertyValue("JdbcPhoneNo",pNo)
//context.testCase.project.setPropertyValue("JdbcPhoneNo",pNo)
//context.testCase.testSuite.setPropertyValue("JdbcPhoneNo",pNo)
//testRunner.testCase.testSuite.project.setPropertyValue("JdbcPhoneNo",pNo)
请你的建议。
由于
答案 0 :(得分:0)
你快到了......
下面的行是一个set命令,是一个要使用的命令,但是你要将它分配给一个var ......
//def x = messageExchange.modelItem.testStep.testCase.setPropertyValue("JdbcPhoneNo",pNo)
相反,将其更改为
messageExchange.modelItem.testStep.testCase.setPropertyValue("JdbcPhoneNo",pNo)
答案 1 :(得分:0)
我得到了上述问题的答案。
我喜欢这个
def responseHolder = groovyUtils.getXmlHolder( messageExchange.responseContent )
而不是def responseHolder = groovyUtils.getXmlHolder( context.responseAsXml )
该值将存储到每次执行的属性中。