我正在尝试创建一个脚本断言,该断言可以验证从rest请求返回的嵌套JSON结构中的键。
我遇到的问题是我不知道响应中的值是true还是false。因此,我要进行的验证只是验证响应的结构。
预期的响应:
{
"atd" : {
"es" : "",
"eu" : "",
"ns" : "",
"nu" : ""
},
"bh" : {
"es" : "",
"eu" : "",
"ns" : "",
"nu" : ""
},
"hw" : {
"es" : "",
"eu" : "",
"ns" : "",
"nu" : ""
},
"thr" : {
"es" : "",
"eu" : "",
"ns" : "",
"nu" : ""
}
}
实际反应:
{
"atd" : {
"es" : false,
"eu" : false,
"ns" : false,
"nu" : false
},
"bh" : {
"es" : true,
"eu" : true,
"ns" : false,
"nu" : false
},
"hw" : {
"es" : false,
"eu" : false,
"ns" : false,
"nu" : false
},
"thr" : {
"es" : false,
"eu" : false,
"ns" : false,
"nu" : false
}
}
当前断言:
def expectedMap = [atd:[es:"",eu:"",ns:"",nu:""], bh:[es:"",eu:"",ns:"",nu:""],...]
def json = new groovy.json.JsonSlurper().parseText(context.response))
assert expectedMap.keySet().sort() == json.keySet().sort() as List, 'Actual response is not matching with expected data'
上面的代码在一定程度上有效,在这种情况下不会声明嵌套键。
有没有办法从响应中获取json并删除true和false值,然后从中断言?