【发布时间】: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");
)};
我们将不胜感激任何提示和改进。
【问题讨论】:
-
您可能想看看这个,因为它内置在本机 Postman 应用程序中 - github.com/epoberezkin/ajv