POSTMAN - 如何检查响应主体的值 > 0

POSTMAN - how to check response body for a value > 0

我是邮递员的新手,正在努力寻找以下问题的答案

我查询 returns 数据如下:

{
   "dailyProcessing":{
      "2020-10-01":{
         "Database":{
            "list0":0,
            "list1":0,
            "list2":300,
            "list3":0,
            "list4":0
         }
      },
      "2020-10-02":{
         "Database":{
            "list0":0,
            "list1":0,
            "list2":0,
            "list3":0,
            "list4":400
         }
      }
   }
}

我需要编写一个测试来检查其中一个值 returns 是一个大于 0 的数字,但我不确定格式应该是什么。

使用的列表将是随机的,因此它不能特定于一个列表,但总会有一个被使用,如果我们在响应中没有看到大于 0 的值,我们需要标记为它将识别处理问题

我的知识不多,所以尝试过像

pm.expect(pm.response.text()).to.include

但我似乎没有得到我需要的结果

抱歉,如果这是一件非常简单的事情,我还没有足够的知识来知道我正在尝试做的到底是什么(即术语)

提前致谢

希望这段代码对你有帮助,把它放在测试选项卡中

它将遍历每个属性,导航到数据库 属性,然后循环遍历每个列表项。

它将对所有可用项执行此操作,直到满足条件,条件是列表项值 > 0。

一旦满足条件,它就会从两个循环中跳出,然后断言满足的条件为真。

如果所有值都为 0 并且循环完成,则条件不满足,测试将失败。

var dailyProcessing = JSON.parse(responseBody);
var conditionMet = false;

for (var key in dailyProcessing)
{
    console.log(Object.keys(dailyProcessing).length)
    console.log(key)

    for(var item in dailyProcessing[key].Database)
    {
        if(dailyProcessing[key].Database[item] > 0){
            conditionMet = true;
            break;
        }
    }

    if(conditionMet){
        break;
    }
}

pm.test("Condition is met", function() {
    pm.expect(conditionMet).to.be.true;
});