无法评估测试脚本:TypeError:无法读取未定义的属性

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

我是 Javascript 和 JSON 的新手,想知道是否有人可以帮助解决这个错误。我的 GET API 返回下面的 JSON 文件(它返回 35749 个项目,因此为了简单起见,我只在此处显示了其中 2 个)

{
    "searchTotalMatch": 35749,
    "searchItems": [
        {
            "accountId": 1,
            "accountNumber": "32520A22DF0X",
            "accountName": "3M Company",
        },
        {
            "accountId": 2,
            "accountNumber": "43371C22DF0X",
            "accountName": "Risk Managed Insurance Consortiu",
        }
        ]
}

我想找到accountId为100的账户的accountName并将其保存到集合变量(TESTACCOUNT)中,我编写了下面的测试脚本:

var responseData = pm.response.json().searchItems;
var test_account = responseData.find((item) => item.accountId === "100");
pm.collectionVariables.set('TESTACCOUNT', test_account.accountNumber);

我收到以下错误消息 无法评估测试脚本: 类型错误:无法读取未定义的属性(读取“accountNumber”)

这是否意味着它根本没有过滤掉该项目?脚本有什么问题?非常感谢!

javascript json postman response
1个回答
0
投票

我看到您正在使用下面的代码将 api 响应转换为 json -

var responseData = pm.response.json().searchItems;

请注意 json() 方法是异步的,您需要使用

await
then()
来获取最终值。

因此,您可以在上述代码中添加

await
并进行以下更改 -

var responseData = await pm.response.json(); // don't forget to add async to the wrapper method
var searchItems = responseData.searchItems;

另外,将下面代码中的“100”替换为 100 -

var test_account = responseData.find((item) => item.accountId === "100");
© www.soinside.com 2019 - 2024. All rights reserved.