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

Postman 邮递员:想验证以JSON格式从API获取的数据值,postman,javascript,json,Postman,Javascript,Json,我想检查一些验证组合,以确定从类似的API请求中获得的值 如果“跟踪”:“是”,则分析>“传输时间”:239应存在 API响应的片段: { "status": 200, "data": [{ "id": 107267, "branchId": "22", "status": "1", "googleETA": "2018-02-01 20:44:51", "runDate": "2018-01-29", "runOfTheDay": "1"

我想检查一些验证组合,以确定从类似的API请求中获得的值 如果
“跟踪”:“是”
,则
分析>“传输时间”: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')
        }
    }
})
pm.test(“基本检查”,()=>{
var jsonData=pm.response.json().data
对于(i=0;i

由于您的数据在
data
数组中只有一个项,您实际上不需要为
添加
for
循环,但我为您添加了它,这样您就可以看到,如果您有多个项,那么将运行相同的检查。如果
tracked
属性为“Yes”,则测试将检查
analytics.transitTime
是否不为null。正如我所说,这是一个基本的检查,它没有做很多,但希望这将给你的信息,你需要开始

你试过什么?邮递员文档是一个很好的起点如果
tracked
等于No,它会是什么样子?如果tracked为No,那么所有分析值都将为空。我提供的解决方案是否为您提供了足够的信息,让您自己尝试创建这些检查?@DannyDainton it,我知道了如何验证它们,谢谢:)