如何使用 REST Assured 验证嵌套响应? [英] How to validate nested response using REST Assured?
本文介绍了如何使用 REST Assured 验证嵌套响应?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
需要帮助使用 REST Assured 库从下面的响应中验证特定的 JSON 参数.
我尝试了一些选项来验证其他类似的参数,如下所示,但没有奏效.
.then().body("value.value.value.name", hasItems("balanceResultCode")).body("value.value.value.value", hasItems("0"));
如果我想验证resultCode"&来自以下回复的subscriberIdType"然后我该怎么做?
<预><代码>[{"name":"Id",价值":11"},{"名称":"版本",值":空},{"名称":"标题",价值":[{"name":"mVersion",值":1"},{"name":"姓名",值":BalQ"},{"name":"appID",价值":90091"},{"name":"requestUid",值":REST_REQUQEST_1"},{"name":"sessionId",值":REST_SESSION_1"},{"name":"请求类型",值":SomeRequestType"},{"name":"请求编号",值":REQ_111"},{"name":"requestDuplicate",值":1"},{"name":"serviceProvider",价值":1},{"name":"用户名",价值":用户"},{"名称":"密码",价值":通过"},{"name":"resultCode",价值":100}]},{"名称":"内容",价值":[{"name":"subscriberAddressing",价值":[{"name":"订阅者",价值":[{"name":"subscriberIdType",价值":200},{"name":"subscriberIdValue",价值":1234567890"}]}]}]}]
解决方案
这是一种方式:
then().body("find { it.name == 'header' }.value.find { it.name == 'resultCode' }.value", is(100)).body("find { it.name == 'content' }.value.find { it.name == 'subscriberAddressing' }.value.find { it.name == 'subscriber' }.value.find { it.name== 'subscriberIdType'}.value", is(200));
您可以阅读 Groovy 集合和 GPath 以了解更多信息.
Need help to validate particular JSON parameter from below response using REST Assured library.
I tried some of the options to validate other similar parameter as shown below but it didn't work.
.then().body("value.value.value.name", hasItems("balanceResultCode")).body("value.value.value.value", hasItems("0"));
If I want to validate "resultCode" & "subscriberIdType" from below response then how can I do it?
[
{
"name":"Id",
"value":"11"
},
{
"name":"version",
"value":null
},
{
"name":"header",
"value":[
{
"name":"mVersion",
"value":"1"
},
{
"name":"Name",
"value":"BalQ"
},
{
"name":"appID",
"value":"90091"
},
{
"name":"requestUid",
"value":"REST_REQUQEST_1"
},
{
"name":"sessionId",
"value":"REST_SESSION_1"
},
{
"name":"requestType",
"value":"SomeRequestType"
},
{
"name":"requestNumber",
"value":"REQ_111"
},
{
"name":"requestDuplicate",
"value":"1"
},
{
"name":"serviceProvider",
"value":1
},
{
"name":"username",
"value":"user"
},
{
"name":"password",
"value":"pass"
},
{
"name":"resultCode",
"value":100
}
]
},
{
"name":"content",
"value":[
{
"name":"subscriberAddressing",
"value":[
{
"name":"subscriber",
"value":[
{
"name":"subscriberIdType",
"value":200
},
{
"name":"subscriberIdValue",
"value":"1234567890"
}
]
}
]
}
]
}
]
解决方案
This is one way:
then().
body("find { it.name == 'header' }.value.find { it.name == 'resultCode' }.value", is(100)).
body("find { it.name == 'content' }.value.find { it.name == 'subscriberAddressing' }.value.find { it.name == 'subscriber' }.value.find { it.name == 'subscriberIdType'}.value", is(200));
You can read up on Groovy collections and GPath to learn more.
这篇关于如何使用 REST Assured 验证嵌套响应?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文