【问题标题】:Are there ways to check the structure of JSON response in Postman tests?有没有办法在 Postman 测试中检查 JSON 响应的结构?
【发布时间】:2023-04-09 06:49:01
【问题描述】:

我已经在 Postman 中编写了几个测试,基于 Windows 桌面上 Postman GUI 中给出的示例 sn-p 代码。

主要是,我想检查响应中是否存在参数(在我需要检查参数的特定值的情况下确实如此)并且我想知道是否有比方法更好的方法来做到这一点我现在一直在做。

以下测试显示了一个这样的示例,这只是其中的一小部分。实际的响应模式要大得多,因此我设想为每个 API 端点编写 50-60 行此类检查。

pm.test("Det details of a POI", function () {
    pm.expect(jsonData.code).to.eql(0);
    pm.expect(jsonData.data[0].provider).to.eql("google");
    pm.expect(jsonData.data[0]).to.have.property("id");
    pm.expect(jsonData.data[0].location).to.have.property("position");
    pm.expect(jsonData.data[0].location.address).to.have.property("text");
    pm.expect(jsonData.data[0].location.address).to.have.property("house");
    pm.expect(jsonData.data[0].location.address).to.have.property("street");
    pm.expect(jsonData.data[0].location.address).to.have.property("postalCode");
    pm.expect(jsonData.data[0].location.address).to.have.property("city");
    pm.expect(jsonData.data[0].location.address).to.have.property("county");
    pm.expect(jsonData.data[0].location.address).to.have.property("state");
    pm.expect(jsonData.data[0].location.address.country).to.eql("United Kingdom");
    pm.expect(jsonData.data[0].location.address).to.have.property("countryCode");
    pm.expect(jsonData.data[0].contacts).to.have.property("phone");
    pm.expect(jsonData.data[0].contacts.website.value).to.include("www.google.com");
    pm.expect(jsonData.data[0].contacts.website).to.have.property("label");
    pm.expect(jsonData.data[0].categories[0]).to.have.property("id");
    pm.expect(jsonData.data[0].categories[0]).to.have.property("title");
    pm.expect(jsonData.data[0].categories[0]).to.have.property("type");
    pm.expect(jsonData.data[0].categories[0]).to.have.property("system");
)};

我们将不胜感激任何提示和改进。

【问题讨论】:

标签: automated-tests postman


【解决方案1】:

您的问题基本上与这两个 Stack Overflow 帖子相同:

Answer: Postman 内置了一个 json 格式验证,它使用Tiny Validator 项目来允许在请求后测试脚本中进行模式验证。研究 Postman 的文档(12)以获取有关如何使用它的示例。

【讨论】:

    猜你喜欢
    • 2017-04-12
    • 2018-09-10
    • 2019-11-07
    • 1970-01-01
    • 2018-08-21
    • 2012-05-23
    • 1970-01-01
    • 1970-01-01
    • 2016-11-30
    相关资源
    最近更新 更多