使用 Postman 进行测试,在响应中的对象数组中查找特定项目

问题描述 投票:0回答:1

我有一个带有以下正文的响应,一个数组。 我想检查我们是否有一件物品,并且只有一件物品的值为 IsPrimary true 且 salePerson 的值为“Chuck Norris”。

[
{
    "districtName": "Austria",
    "storeName": "Store6",
    "salePerson": "sdfgh",
    "isPrimary": false
},
{
    "districtName": "Austria",
    "storeName": "Store6",
    "salePerson": "dfsd",
    "isPrimary": false
},
{
    "districtName": "Austria",
    "storeName": "Store6",
    "salePerson": "Chuck Norris",
    "isPrimary": true
},
{
    "districtName": "Austria",
    "storeName": "Store6",
    "salePerson": "sdfgh",
    "isPrimary": false
}

我尝试过滤它给了我错误:

data =pm.response.body;
let object_to_find = { saleperson: 'Chuck Norris' };
let result2 = data.filter(function (value) {
    return value.id == object_to_find.id && value.name == object_to_find.name;
});
console.log(result2);

错误:

Couldn't evaluate the test script:
TypeError: Cannot read properties of undefined (reading 'filter')
javascript postman http-get
1个回答
0
投票

要根据特定条件过滤数组(在您的情况下,查找 salePerson 为 'Chuck Norris'isPrimarytrue 的项目),您可以使用过滤器函数,如下所示:

let data = pm.response.json();

let result = data. Filter(function(item) {
    return item.salePerson === 'Chuck Norris' && item.isPrimary === true;
});

console.log(result);

还要确保在应用过滤器函数之前使用 pm.response.json() 将响应正文 (pm.response.body) 正确解析为 JavaScript 对象,并确认用于比较的属性名称 (salePerson、isPrimary) 完全匹配与响应对象中的那些。

© www.soinside.com 2019 - 2024. All rights reserved.