messageExchange对象在JDBC Teststep断言上不可用,但在SOAP Request断言上可用

时间:2016-08-23 03:07:11

标签: groovy soapui functional-testing

我的动机是使用我在“属性”测试步骤中存储的XML文档来声明JDBC调用的响应。我需要验证一些值。

我正在尝试在SoapUI 5.2.1中使用脚本类型断言进行JDBC测试步骤。我以前也为'SOAP Request'测试步骤创建了脚本类型断言,它们工作正常。对于JDBC,当我使用:

def testCase = messageExchange.modelItem.testCase;

我收到错误

“无法在null对象上获取属性'modelItem'。

在SOAP请求的脚本断言中使用了同样的东西,它工作正常。不知何故,隐式对象'messageExchange'不仅仅适用于JDBC测试步骤,而且它会抛出NPE。 enter image description here

1 个答案:

答案 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()

enter image description here