3

邮递员 6.0.10 在这里。我试图了解如何更好地编写测试脚本,并且在阅读了他们原本出色的文档之后,我仍然对如何查询和检查从请求返回的 JSON 响应有些困惑。

具体来说,给定以下 JavaScript 片段:

pm.test("Verify the contents of the response payload are correct", function () {
    // ???
});

我需要能够查询响应 JSON 并且:

  • 确定响应是单个 JSON 对象还是 JSON 对象数组
  • 如果它是一个数组,请确定大小(数组中的元素数)
  • 否则,如果它是单个对象,我需要能够查询该对象的特定字段(例如,名为“ fizzbuzz”的字段)并获取这些字段的值和 JSON 类型(字符串、数字、布尔值、null)

场景 #1:JSON 响应是一个数组

例子:

[
    {
        "fizz": "buzz",
        "foo": 53
    },
    {
        "fizz": "bozz",
        "foo": 291
    }
]

场景 #2:JSON 响应是单个对象

例子:

{
    "fizz": "buzz",
    "foo": 293
}

任何想法如何执行响应有效负载的 JSON 检查?

4

2 回答 2

6

这是基本的,但应该能够获得动态:

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 对象

于 2018-03-31T17:49:48.337 回答
-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)
于 2020-02-06T08:56:22.637 回答