作为初学者,我有几个问题。我正在使用 Get 请求,它将填充下面的 json。
{
"total": 12,
"total_pages": 4,
"data": [{
"id": 1,
"first_name": "George",
"last_name": "Bluth",
"avatar": "https://s3.amazonaws.com/uifaces/faces/twitter/calebogden/128.jpg"
}]
}
对于下面的 2 个测试,当第一个测试通过时,第二个测试失败并显示消息:
AssertionError: expected false to be truthy
//Verify Page number total is 12
var jsonData = JSON.parse(responseBody);
tests["Checking total page number-Manual"] = jsonData.total === 12;
//verify is exists and is 1
var jsonData = JSON.parse(responseBody);
tests["Checking ID exists and is 1"] = jsonData.id === 1;
问题一: 我发现的一个 github 帖子说可能有错误并建议使用 新的 pm.* 等效项。但是我看不出第一个和第二个有什么区别。那么为什么第二次测试失败了呢?
问题二: 是否可以编写测试来验证 ID:1 的名字是 George?
提前感谢您的宝贵时间。
最佳答案
您的第二次测试失败的原因是数据是一个数组,在这种情况下您必须访问第一个元素。你会想做这样的事情(新语法):
pm.test("Verify id is equal to 1", function() {
var jsonData = pm.response.json();
pm.expect(jsonData.data[0].id).to.equal(1);
});
同样测试名字是乔治:
pm.test("Verify id is equal to 1", function() {
var jsonData = pm.response.json();
pm.expect(jsonData.data[0].first_name).to.equal("George");
});
如果您总是希望它只是数组中的单个元素,那么您可以安全地使用索引 0,即 data[0]。但是,如果您希望数据数组中有更多元素,则必须遍历它们以查找正确的元素。
这是一个很好的 API 引用:
https://learning.getpostman.com/docs/postman/scripts/postman_sandbox_api_reference/
关于api - POSTMAN - 测试失败为真,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54352177/