无法检查响应 body 中的 JSON 值

Can not check the JSON value from the response body

我刚开始使用邮递员测试 api。我遇到了 json 路径的一个问题..

在 json 文件中我有这样的代码


{
 "users": [
   {
     "firstName": "UserOne",
     "lastName": "One",
     "subjectId": 1,
     "id": 1
   },
   {
     "firstName": "UserTwo",
     "lastName": "Two",
     "subjectId": 2,
     "id": 2
   },
   {
     "firstName": "UserThree",
     "lastName": "Three",
     "subjectId": 3,
     "id": 3
   }
 ],
 "subjects": [
   {
     "id": 1,
     "name": "SubOne"
   },
   {
     "id": 2,
     "name": "SubTwo"
   },
   {
     "id": 3,
     "name": "SubThree"
   }
 ]
}

我用 json-server --watch db.json

启动 json 服务器

之后我使用邮递员发送 GET 请求 请求 URL http://localhost:3000/users

这是我得到的body

[
    {
        "firstName": "UserOne",
        "lastName": "One",
        "subjectId": 1,
        "id": 1
    },
    {
        "firstName": "UserTwo",
        "lastName": "Two",
        "subjectId": 2,
        "id": 2
    },
    {
        "firstName": "UserThree",
        "lastName": "Three",
        "subjectId": 3,
        "id": 3
    }
]

我试图使用下面的代码片段验证 ID 1 中的名字

pm.test("Your test name", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.users[0].firstName).to.eql('UserOne');
});

但是输出是 FAIL Your test name | TypeError: Cannot read property '0' of undefined

我在这里需要帮助,因为 json 路径 users[0].firstName 应该给我第一个索引..

您的响应中没有密钥 users,因此当您尝试访问不存在的密钥时,您将收到错误 Cannot read property 'xxx' of undefined。要解决这个问题,您只需要:

pm.test("Your test name", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData[0].firstName).to.eql('UserOne');
});