我试图在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);
答案 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响应,以便您可以看到如果您有更多项目会是什么样子:
答案 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")
所以你了解我。