为什么我的soapui测试用例在安装新的soapui版本(5.3.0 - > 5.4.0)后失败

时间:2018-01-12 14:08:49

标签: groovy soapui assertion

groovy assertion fail

嘿那里,我有用groovy编写的SOAPUI测试用例。在我安装最新版本的SOAPUI(5.4.0,在Windows 10机器上)之前,测试在5.3.0(在Linux机器上)上很好。随着新版本我得到一个断言失败。似乎创建了一个数组并将其放入索引为0的数组中。因此names.contains(“username”)失败。

我不明白为什么在安装新版本的SOAPUI后测试失败了。

有没有人知道什么在这里? 有没有人下载5.3.0版本,所以我可以再次使用该版本进行测试?

最好的问候

1 个答案:

答案 0 :(得分:0)

我确认以下代码在soapui 5.4.0中失败:

import org.json.JSONObject;
def jsonData = '''
{ "aaa":1, "bbb":2 }
'''

def json = new JSONObject(jsonData)
def names = json.names().iterator().toList()

assert names.contains("aaa")
log.info "SUCCESS!!!"

有错误:

Assertion failed: assert names.contains("aaa") | | | false [["aaa","bbb"]] error at line: 9

问题:

soapui 5.4.0包含org.json包的非常旧的库:json-20090211.jar

其他版本:https://mvnrepository.com/artifact/org.json/json

<强>的解决方法

  1. 使用newer version替换soapui的json-20090211.jar文件夹中的lib。但不确定这会如何影响soapui本身。

  2. 使用基于groovy的json解析器重写代码:

  3. def jsonData = '''
    { "aaa":1, "bbb":2 }
    '''
    
    def json = new groovy.json.JsonSlurper().parseText(jsonData)
    def names = json.keySet()
    
    assert names.contains("aaa")
    log.info "SUCCESS!!!"