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



我想检查一些验证组合,以验证我从 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"
    }
  }]
}

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

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属性为"是",则测试正在检查analytics.transitTime是否不为 null。就像我说的,这是一个基本的检查,它并没有做很多事情,但希望这能给你入门所需的信息。

最新更新