邮递员:想要验证从JSON格式的API获取的数据值

时间:2018-01-29 13:34:53

标签: javascript json postman

我想检查我在中从API请求中获取的值的某些验证组合 如果"tracked": "Yes",那么analytics > "transitTime": 239应该出现。

API响应的片段:

{
  "status": 200,
  "data": [{
    "id": 107267,
    "branchId": "22",
    "status": "1",
    "googleETA": "2018-02-01 20:44:51",
    "runDate": "2018-01-29",
    "runOfTheDay": "1",
    "ATD": "2018-01-29 14:02",
    "simCarrier": "Vodafone",
    "pingStatus": "Ok",
    "driverName": "test",
    "shipperCompanyId": "007",
    "ETA": "2018-01-30 12:31:00",
    "locationSource": "sim",
    "created_at": "2018-01-29 07:05:54",
    "updated_at": "2018-01-29 12:35:40",
    "tracked": "Yes",
    "analytics": {
      "loadingTime": 55.62,
      "unloadingTime": 0,
      "transitTime": 239
    },
    "trackingStatusAtClosure": {
      "Origin": "No",
      "Transit": "No",
      "Destination": "No"
    }
  }]
}

1 个答案:

答案 0 :(得分:0)

这是一个非常基本的检查,除了在当地环境中练习外,我建议不要在任何地方使用它。

pm.test("Basic Check", () => {
    var jsonData = pm.response.json().data
    for(i = 0; i < jsonData.length; i++) {
        if(jsonData[i].tracked === 'Yes') {
            pm.expect(jsonData[i].analytics.transitTime).to.not.be.null
        } else {
            console.log('Tracked does not equal Yes')
        }
    }
})

由于您的数据在data数组中只有一个项目,因此您不需要 来添加for循环,但我已将其添加到您这样做你可以看到,如果你有多个项目,同样的检查会运行。如果tracked属性是&#39;是&#39;然后测试是检查analytics.transitTime是否为空。就像我说的那样,它是一个基本的检查,并没有做很多事情,但希望能为您提供入门所需的信息。