邮差测试控制台日志

时间:2018-05-17 19:18:26

标签: javascript postman

我试图在Postman的Tests下编写一个console.log来做两件事

1-计算多少种类型/唯一" ShipmentStatus"收到回复正文(进行中,发货和拒绝)

2 - 我们收到的每个ShipmentStatus的数量(例如,完成中的4个订单中5个订单)

如何在我的console.log中显示1和2?

"Orders": [
    {
        "id": 544789,
        "Company": {
            "ClientName": "Therese",
        },
        "Shipping": {
            "Address": "Street,",
        },

        "userId": "1413260",
        "ShipmentStatus": "In-Process"
    },
    {
        "id": 544787,
        "Company": {
            "ClientName": "Therese",
        },
        "Shipping": {
            "Address": "Street,",
        },

        "userId": "1413260",
        "ShipmentStatus": "Shipped"
    },
            {
        "id": 544786,
        "Company": {
            "ClientName": "Therese",
        },
        "Shipping": {
            "Address": "Street,",
        },

        "userId": "1413260",
        "ShipmentStatus": "Rejected"
    },

我能够通过以下方式获得收到的总记录

 console.log("Total Orders : " + response.Orders.length);

2 个答案:

答案 0 :(得分:1)

你可以像这样做一些非常快速和肮脏的事情,如果你想看到的是那些登出控制台的值:

console.log(`Total Orders: ${pm.response.json().Orders.length}`)

var counts = {};
for (var i = 0; i < pm.response.json().Orders.length; i++) {
    counts[pm.response.json().Orders[i].ShipmentStatus] = 1 + (counts[pm.response.json().Orders[i].ShipmentStatus] || 0);
}

console.log(counts)

我扩展了您的JSON响应,以便您可以看到如果您有更多项目会是什么样子:

Postman Console

答案 1 :(得分:0)

您可以使用object:

来完成
    var buffer = {}
    var orders = pm.response.json().Orders;
    orders.forEach(function(item) {
      var id = item.ShipmentStatus;
    if(buffer[id]) buffer[id]++
      else buffer[id] = 1;
    })
    for(var status in buffer)
    {
    console.log(status + ":" +buffer[status])
    }
    console.log(Object.keys(buffer).length+" unique values")

所以你了解我。