我的动机是使用我在“属性”测试步骤中存储的XML文档来声明JDBC调用的响应。我需要验证一些值。
我正在尝试在SoapUI 5.2.1中使用脚本类型断言进行JDBC测试步骤。我以前也为'SOAP Request'测试步骤创建了脚本类型断言,它们工作正常。对于JDBC,当我使用:
def testCase = messageExchange.modelItem.testCase;
我收到错误
“无法在null对象上获取属性'modelItem'。
在SOAP请求的脚本断言中使用了同样的东西,它工作正常。不知何故,隐式对象'messageExchange'不仅仅适用于JDBC测试步骤,而且它会抛出NPE。
答案 0 :(得分:3)
messageExchange
对象不可用。因为,如果您看到Script Assertion
编辑器的右上角,很明显messageExchange
对象可用(如下所示)。
使用log,context和messageExchange变量调用脚本
是否在没有实际运行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()