无法检查响应 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');
});
我刚开始使用邮递员测试 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
之后我使用邮递员发送 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');
});