PostMan 6.0.10在这里。我正在努力理解如何更好地编写测试脚本,并且在阅读了它们之后superb documentation我仍然对如何查询&检查来自请求的JSON响应。
具体来说,给出以下JavaScript代码片段:
pm.test("Verify the contents of the response payload are correct", function () {
// ???
});
我需要能够查询响应JSON和:
fizzbuzz
”的字段)并获取值和JSON类型(字符串,数字,布尔, null)这些字段示例:
[
{
"fizz": "buzz",
"foo": 53
},
{
"fizz": "bozz",
"foo": 291
}
]
示例:
{
"fizz": "buzz",
"foo": 293
}
有关如何执行此JSON检查响应有效负载的任何想法
答案 0 :(得分:4)
这是基本的,但应该有助于获得动态:
pm.test("Verify payload of example one", () => {
pm.expect(pm.response.json()[0].fizz).to.equal('buzz')
pm.expect(pm.response.json()[0].foo).to.equal(53)
pm.expect(pm.response.json()[1].fizz).to.equal('bozz')
pm.expect(pm.response.json()[1].foo).to.equal(291)
});
pm.test("Verify payload of example two", () => {
pm.expect(pm.response.json().fizz).to.equal('buzz')
pm.expect(pm.response.json().foo).to.equal(293)
});
可能值得研究一些基本的JavaScript以及如何解析JSON objects。
答案 1 :(得分:-1)
//您可以执行以下操作
if (responseCode.code === 200) {
var jsonDataArray;
var jsonArray= JSON.parse(responseBody);
var found=false;
for (var i = 0;i<jsonArray.length;i++){`enter code here`
jsonDataArray = jsonArray[i];
for (var j = 0; j<jsonDataArray.length && found === false;j++){
if (jsonDataArray[j].fizz === "buzz" && jsonDataArray[j].foo === 53)