根据Windows桌面上Postman GUI中给出的示例代码片段,我用Postman编写了一些测试。
主要是,我想检查响应中是否存在参数(正是在这种情况下,我需要检查参数的特定值),我想知道是否有比这更好的方法了我现在一直在做。
以下测试显示了一个这样的示例,这只是其中的一小部分。实际的响应模式要大得多,因此我设想每个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");
)};
任何提示和改进将不胜感激。
答案 0 :(得分:0)
您基本上是在问与以下两个Stack Overflow帖子相同的内容:
答案:Postman中内置了一个json格式验证,它使用Tiny Validator项目来允许在请求后测试脚本中进行模式验证。研究邮递员的文档(1,2)中提供了有关用法的示例。