使用javascript和Postman计算JSON数组中的记录

Chr*_*ssi 13 javascript json postman

我有一个返回2条记录的控件:

{
  "value": [
    {
      "ID": 5,
      "Pupil": 1900031265,
      "Offer": false,
    },
    {
      "ID": 8,
      "Pupil": 1900035302,
      "Offer": false,
      "OfferDetail": ""
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

我需要通过Postman测试,我有2条记录返回.我尝试了各种方法,我在这里和其他地方找到但没有运气.使用下面的代码无法返回预期的答案.

responseJson = JSON.parse(responseBody);
var list = responseBody.length;
tests["Expected number"] = list === undefined || list.length === 2;
Run Code Online (Sandbox Code Playgroud)

在这一点上,我不确定这是我正在测试的API是错误还是我的编码 - 我已经尝试循环返回的项目,但这对我来说也不起作用.有人可以建议 - 我是javascript的新手,所以我希望我的问题有一个明显的原因,但我没有看到它.非常感谢.

RC_*_*_02 15

在邮递员中,根据Tests部分,执行以下操作(下面的屏幕截图): var body = JSON.parse(responseBody); tests["Count: " + body.value.length] = true;

这是你应该看到的(注意:我responseBody用JSON 代替上面的模拟示例): 在此输入图像描述

  • @ConnieDeCinko我已经为大数据做了这个,这段代码对我有用```var body = JSON.parse(responseBody); 测试["计数:" + body.length] = true;``` (5认同)

Kau*_*hik 14

纠正你的json.试试这个.

var test = JSON.parse('{"value": [{"ID": 5,"Pupil": 1900031265,"Offer": false},{"ID": 8,"Pupil": 1900035302,"Offer": false,"OfferDetail": ""}] }')

test.value.length; // 2
Run Code Online (Sandbox Code Playgroud)


For*_*est 7

这是我想出的最简单的方法:

pm.expect(Object.keys(pm.response.json()).length).to.eql(18);
Run Code Online (Sandbox Code Playgroud)

无需自定义任何变量。只需复制,粘贴并调整“ 18”为所需的任何数字即可。


Rak*_*133 6

这就是我为计算记录所做的

//parsing the Response body to a variable
    responseJson = JSON.parse(responseBody);

//Finding the length of the Response Array
    var list = responseJson.length;
    console.log(list);
    tests["Validate service retuns 70 records"] = list === 70;
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明


小智 6

仅断言数组中的 2 个对象的更新版本:

pm.test("Only 2 objects in array", function (){
    pm.expect(pm.response.json().length).to.eql(2);
});
Run Code Online (Sandbox Code Playgroud)


Mus*_*mun 5

您的响应正文是一个对象,您无法找到对象尝试的长度

var list = responseJson.value.length;
Run Code Online (Sandbox Code Playgroud)