如何在Postman Tests中用console.log统计ShipmentStatus的类型与数量
实现Postman中ShipmentStatus的统计功能
嘿,刚好我之前也做过类似的需求,给你一步步拆解怎么实现这两个功能:
核心思路
我们可以先遍历所有订单,用一个对象来记录每种ShipmentStatus出现的次数,之后就能轻松拿到唯一状态数量和各状态的订单数了。
完整代码(直接复制到Tests模块即可)
// 1. 获取响应中的订单数组 const orders = response.Orders; // 2. 输出总订单数(你已经实现的部分,保留下来) console.log("Total Orders : " + orders.length); // 3. 创建空对象,用于存储每个状态对应的订单数 const statusCounts = {}; // 4. 遍历所有订单,统计各状态数量 orders.forEach(order => { const status = order.ShipmentStatus; // 如果该状态已在对象中,计数+1;否则初始化为1 statusCounts[status] = (statusCounts[status] || 0) + 1; }); // 5. 统计唯一状态类型的数量 const uniqueStatusCount = Object.keys(statusCounts).length; console.log(`Unique ShipmentStatus Types: ${uniqueStatusCount}`); // 6. 输出每种状态对应的订单数 console.log("ShipmentStatus Breakdown:"); for (const status in statusCounts) { console.log(`${statusCounts[status]}个${status}订单`); }
代码解释
- 我们用
forEach遍历订单数组,对每个订单的ShipmentStatus做计数:如果这个状态已经在statusCounts对象里,就把对应的值加1;如果是第一次遇到,就默认从0开始加1(|| 0处理初始值为undefined的情况)。 Object.keys(statusCounts)会返回所有状态的名称数组,它的长度就是唯一状态的数量。- 最后用
for...in循环遍历statusCounts对象,把每个状态的数量和名称输出出来。
测试一下,如果你返回的订单里有4个In-Process、5个Complete、2个Rejected,控制台会输出:
Total Orders : 11
Unique ShipmentStatus Types: 3
ShipmentStatus Breakdown:
4个In-Process订单
5个Complete订单
2个Rejected订单
内容的提问来源于stack exchange,提问作者rookievmc
相关产品推荐
相关产品推荐

