邮递员-测试失败为假

时间:2019-01-24 17:20:22

标签: api testing postman

作为初学者,我有几个问题。我正在使用Get请求,该请求将在下面填充json。

https://reqres.in/api/users

{
    "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"
    }]
}

对于以下两个测试,而第一个测试通过第二个测试失败,并显示以下消息:

 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;

问题1: 我发现的github帖子说可能存在错误,建议使用  而是新的pm。*等价物。但是,我看不出第一和第二之间的任何区别。那么第二项测试为什么失败?

问题2: 是否可以编写测试以验证ID:1的名字是George?

提前感谢您的时间。

1 个答案:

答案 0 :(得分:1)

第二次测试失败的原因是因为数据是一个数组,在这种情况下,您必须访问第一个元素。您可能想要执行以下操作(新语法):

pm.test("Verify id is equal to 1", function() {
    var jsonData = pm.response.json();
    pm.expect(jsonData.data[0].id).to.equal(1);
});

乔治(George)同样是测试名字的人

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/