当前位置: 首页 > 知识库问答 >
问题:

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

端木高卓
2023-03-14

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

我正在尝试在 SoapUI 5.2.1 中的 JDBC 测试步骤中使用脚本类型断言。我以前也为“SOAP 请求”测试步骤创建了脚本类型断言,它们工作正常。在JDBC的情况下,当我使用:

def testCase = messageExchange.modelItem.testCase;

我明白了错误

无法获取空对象的属性“modelItem”。

共有1个答案

姜钊
2023-03-14

因为,如果您看到Script Assertion编辑器的右上角,很明显MessageExchange对象是可用的(如下所示)。

使用日志、上下文和messageExchange变量调用脚本

您是不是在运行jdbc测试步骤的情况下运行了脚本断言

在脚本断言中,可以使用下面的groovy语句访问测试用例属性:

def propValue = context.testCase.getPropertyValue('PROPERTY_NAME')
log.info "Property value is : ${propValue}"

上面的相同语句应该在Groovy脚本测试步骤和脚本断言中都有效。

如果您需要测试用例对象,那么

更改自:

<code>def testCase=messageExchange.modelItem.testCase

致:

def-testCase=context.testCase

编辑:

在评论中,问题的作者请求从< code >脚本断言获得JDBC响应。

尽管Script Assertion中提供了变量MessageExchange,但看起来它仅适用于Soap或Rest类型的步骤。

但是,用户应该仍然能够使用以下语句访问< code >脚本断言中的响应:

import groovy.xml.*    
log.info context.responseAsXml
def responseSlurper = new XmlSlurper().parseText(context.responseAsXml)
log.info responseSlurper.ResultSet.Row.size()
 类似资料:
  • 我收到以下错误: 对于我的Junit测试中的这行代码,请注意,

  • 我有两门课: 还有我的测试: 我希望它能通过,因为解包装可选,将转换为,在最后一个方法中,我只是比较字符串。 但它在最后一行失败了: 我不知道为什么可选包装没有打开

  • 下面是一张这样的地图: 和一个类BestClass像这样: 现在,这个地图在程序过程中被填充。 是否有一种干净的方法(不包括在映射键上循环)来断言,例如,映射对象值的b值都不是0?

  • 我正在测试上下文变量是否包含字符串 但它抛出以下错误: (mysite)sugumar@mysitedotcom:~/python/django/mysite$python manage.py测试轮询正在为别名“default”创建测试数据库。。。系统检查未发现任何问题(0静音)。E……....====================================================

  • 我试图让一些assertj断言更干净一点。我们经常在一个非平凡的层次结构级别上为各种对象断言多个子属性。我一直在使用“提取”从一个对象中提取简单的属性,但我现在尝试做的事情稍微复杂一点,而且它不起作用。我所看到的似乎是assertj中的一个bug,但我不确定它为什么要做它正在做的事情。 我从这样开始: 我想做这样的事情: 我尝试更改测试,因此两个路径字符串是“/reportion”和“/Enter

  • 通过主动构建过程掌控架构 您的软件架构和您所期望的一样吗?当架构落实到代码时,它并不总是 我们曾经互相讨论并预想的那个。在本期的 让开发自动化中,Paul Duvall 将演示如何通过使用 JUnit、JDepend 和 Ant 编写 有关测试来发现架构偏差,从而做到在发生问题之前主动发现问题。 我在曾经从事的很多软件开发项目中观察到,软件开发中一直存在这样一种现象:您实际拥有的架构往往与想象中的