You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Postman中从数组对象提取数值并验证其大于0?

Postman测试:验证接口返回数组对象中的数值大于0

问题场景

接口返回的JSON结构如下(键为数字字符串,值是包含嵌套数组的结构,嵌套数组第二个元素是需要验证的数值):

{"389": [["2021-04-30T00:00:00Z",16.130089309443093]],"390": [["2021-04-30T00:00:00Z",14.899161948201808]],"391": [["2021-04-30T00:00:00Z",17.495245579925736]],"392": [["2021-04-30T00:00:00Z",16.78176061001777]],"393": [["2021-04-30T00:00:00Z",25.473437964096448]],"394": [["2021-04-30T00:00:00Z",56.746358310562826]],"388": [["2021-04-30T00:00:00Z",18.49559245290604]]}

原测试代码无法遍历结构完成验证:

pm.test("Check performance > 0", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.value).to.greaterThan(0);
});

解决方法

需要遍历JSON对象的所有键,逐层访问到嵌套数组中的数值并逐个验证。修改后的测试代码如下:

pm.test("Check all performance values are greater than 0", function () {
    var jsonData = pm.response.json();
    // 遍历对象的每个键
    Object.keys(jsonData).forEach(function(key) {
        // 获取当前键对应的嵌套数组
        var nestedArray = jsonData[key][0];
        // 提取需要验证的数值(嵌套数组第二个元素)
        var performanceValue = nestedArray[1];
        // 验证数值大于0,添加键名提示方便定位问题
        pm.expect(performanceValue).to.be.greaterThan(0, `Value for key ${key} is not greater than 0`);
    });
});

代码说明

  • Object.keys(jsonData):获取返回JSON对象的所有键(如"389""390"等)
  • forEach:遍历每个键,逐个处理对应的值
  • jsonData[key][0]:每个键对应的值是仅含一个嵌套数组的数组,取索引0的元素即可拿到目标嵌套数组
  • nestedArray[1]:嵌套数组的第二个元素(索引1)就是需要验证的数值
  • 自定义提示信息,方便某个数值不满足条件时快速定位到对应键

内容的提问来源于stack exchange,提问作者B Ahern

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 11:25:18