gpt4 book ai didi

postman :如果存在键:值,如何检查 Json 响应数组

转载 作者:行者123 更新时间:2023-12-03 06:35:30 27 4
gpt4 key购买 nike

我想检查我的 JSON 响应 数组 如果键:值存在。
我想如果找到 key:value 退出循环 并得到测试结果。
你能支持我怎么做吗?

例如我有以下回应:

[
{
"persID": "personID_1",
"vip": false,
"account": {
"contactName": "value1",
},
"premium": {
"Name": "value2",
"Director": "value3",
"company": "value7",
"homePage": "value6",
"address": {
"country": "value8",
"city": "value9"
},
"photo": value10
}
},
{
"persID": "personID_2",
"vip": false,
"account": {
"contactName": "value11",
},
"premium": {
"Name": "value12",
"Director": "value13",
"company": "value17",
"homePage": "value16",
"address": {
"country": "value18",
"city": "value19"
},
"photo": value110
}
},
.....
.....// dynamic response can be "n" elements!!!!
]

我想检查这个数组中是否存在一个带有 ( "persID": "personID_3" ) 的键值。 (例如,对于 persID_3,结果应该是 失败 和 persID_2 通过 )

我尝试了以下但没有结果:
var jsonArray = pm.response.json();
var persID = "persID_3";
pm.test("2. tets check if persdID exist in array", function () {
var i=0;
for(i; i<jsonArray.length;i++){

pm.expect(jsonArray).to.have.property(jsonArray[i].persID, persID);
// pm.expect(jsonArray[i]).to.have.property(jsonArray[i].persID, persID);

}
});

也试过
var jsonArray = JSON.parse(responseBody);

pm.expect(jsonArray[i]).to.have.property(jsonArray[i].persID, persID);

但没有结果

感谢您的任何支持。

最佳答案

您可以使用 Lodash遍历数组并检查响应中的值:

pm.test('Matches personID property value', () => {
_.each(pm.response.json(), (arrItem) => {
if (arrItem.persID === 'personID_2') {
throw new Error(`Array contains ${arrItem.persID}`)
}
})
});

如果 personID_2,这应该使测试失败属性存在,但该值可以是您喜欢的任何值。我使用了你的响应数据并创建了一个快速的 API 路由来向你展示这个工作。

Postman

我将值添加到错误消息中,以便它对测试输出更具描述性。

关于 postman :如果存在键:值,如何检查 Json 响应数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49686280/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com