api - POSTMAN - 测试失败为真

标签 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"
    }]
}

对于下面的 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/

相关文章:

postman - 如何从 postman 的响应正文中提取值

database - Django - 如何仅获取具有查询集的字段组合的 2 个对象

C++ 套接字和压力测试

用于更新或插入值的 PHP 代码

ruby-on-rails-4 - Rails 无法加载 shoulda-matchers 3.1.1 gem,#<RSpec 的未定义方法 `allow_value'

testing - 有人可以帮助区分 xUnit、nUnit、mbUnit 吗?

postman - 如何将 apiDoc 转换为 postman 集合?

botframework - 400 来自使用 Postman 的本地机器人的错误请求

javascript - 从 Spotify Apps API 获取用户加星标的播放列表?

api - 通过使用 5.5 使用 Drools 6.0 新的 PHREAK 算法。遗留 API