messageExchange 对象在 JDBC Teststep 断言上不可用,但在 SOAP 请求断言上可用
messageExchange object not available on JDBC Teststep assertion but available on SOAP Request assertions
我的动机是断言来自 JDBC 调用的响应以及我存储在 'Properties' 测试步骤中的 XML 文档。我需要验证一些值。
我正在尝试对 SoapUI 5.2.1 中的 JDBC 测试步骤使用脚本类型断言。我之前也为 'SOAP Request' 测试步骤创建了脚本类型断言,它们工作正常。在 JDBC 的情况下,当我使用 :
def testCase = messageExchange.modelItem.testCase;
我收到错误
"Cannot get property 'modelItem' on null object".
在 SOAP 请求的脚本断言中使用了同样的东西,并且工作正常。不知何故,隐式对象 'messageExchange' 不仅可用于 JDBC 测试步骤,而且它会抛出 NPE。
messageExchange
对象不可用是不正确的。因为,如果你看到 Script Assertion
编辑器的右上角,很明显 messageExchange
对象可用(如下所示)。
Script is invoked with log, context, and messageExchange variables
您是否 运行 script assertion
实际上没有 运行 jdbc
测试步骤?
在脚本断言中,可以使用以下 groovy 语句访问测试用例属性:
def propValue = context.testCase.getPropertyValue('PROPERTY_NAME')
log.info "Property value is : ${propValue}"
上面的相同语句应该在 Groovy Script
测试步骤和 Script Assertion
中都有效。
如果你需要测试用例对象,那么
变化自:
def testCase = messageExchange.modelItem.testCase;
收件人:
def testCase = context.testCase
编辑:
根据评论,问题的作者要求从 Script Assertion
获得 JDBC 回复。
尽管变量 messageExchange
在 Script Assertion
中可用,看起来它仅适用于 Soap 或 Rest 输入步骤。
但是,用户仍然可以使用以下语句访问 Script Assertion
中的响应:
import groovy.xml.*
log.info context.responseAsXml
def responseSlurper = new XmlSlurper().parseText(context.responseAsXml)
log.info responseSlurper.ResultSet.Row.size()
我的动机是断言来自 JDBC 调用的响应以及我存储在 'Properties' 测试步骤中的 XML 文档。我需要验证一些值。
我正在尝试对 SoapUI 5.2.1 中的 JDBC 测试步骤使用脚本类型断言。我之前也为 'SOAP Request' 测试步骤创建了脚本类型断言,它们工作正常。在 JDBC 的情况下,当我使用 :
def testCase = messageExchange.modelItem.testCase;
我收到错误
"Cannot get property 'modelItem' on null object".
在 SOAP 请求的脚本断言中使用了同样的东西,并且工作正常。不知何故,隐式对象 'messageExchange' 不仅可用于 JDBC 测试步骤,而且它会抛出 NPE。
messageExchange
对象不可用是不正确的。因为,如果你看到 Script Assertion
编辑器的右上角,很明显 messageExchange
对象可用(如下所示)。
Script is invoked with log, context, and messageExchange variables
您是否 运行 script assertion
实际上没有 运行 jdbc
测试步骤?
在脚本断言中,可以使用以下 groovy 语句访问测试用例属性:
def propValue = context.testCase.getPropertyValue('PROPERTY_NAME')
log.info "Property value is : ${propValue}"
上面的相同语句应该在 Groovy Script
测试步骤和 Script Assertion
中都有效。
如果你需要测试用例对象,那么
变化自:
def testCase = messageExchange.modelItem.testCase;
收件人:
def testCase = context.testCase
编辑:
根据评论,问题的作者要求从 Script Assertion
获得 JDBC 回复。
尽管变量 messageExchange
在 Script Assertion
中可用,看起来它仅适用于 Soap 或 Rest 输入步骤。
但是,用户仍然可以使用以下语句访问 Script Assertion
中的响应:
import groovy.xml.*
log.info context.responseAsXml
def responseSlurper = new XmlSlurper().parseText(context.responseAsXml)
log.info responseSlurper.ResultSet.Row.size()