关于postman:Postman-实用接口测试系列-6-解析Json-response-结果

23次阅读

共计 1580 个字符,预计需要花费 4 分钟才能阅读完成。

在用 postman 进行接口测试的过程中,如果接口之间有依赖,那必然波及到须要把接口的 response 后果的值提取进去给下一个接口应用。
明天咱们就来讲一讲如何提取一个 json 类型的 response 里的数据。

假如咱们的 response 如下。

{
    "dateSlots": [
        {
            "date": "2020-07-23",
            "available": true
        },
        {
            "date": "2020-07-24",
            "available": true
        }
    ],
    "timeSlots": [
        {
            "dealerId": "9",
            "advisorId": null,
            "date": "2020-07-23",
            "startTime": "9:00",
            "endTime": "9:30",
            "available": false
        },
        {
            "dealerId": "9",
            "advisorId": "ADV_490_13",
            "date": "2020-07-23",
            "startTime": "13:00",
            "endTime": "13:30",
            "available": true
        },
        {
            "dealerId": "9",
            "advisorId": "ADV_490_13",
            "date": "2020-07-23",
            "startTime": "13:30",
            "endTime": "14:00",
            "available": true
        }
    ]
}

1. 提取所有 response 的值

pm.test("get timeslots", function(){var data = pm.response.json();

    console.log(data)

})

2. 提取 timeSlots 里的值

pm.test("get timeslots", function(){var data = pm.response.json();

    console.log(data.timeSlots)

})

3. 提取第一个 dealerId 的值

pm.test("get timeslots", function(){var data = pm.response.json();

    console.log(data.timeSlots[0].dealerId)

})

4. 遍历所有的 dealerId 的值

pm.test("get timeslots", function(){var data = pm.response.json();
        
    _.each(data.timeSlots, (result) => {console.log(result.dealerId)
    })
})

5. 找出所有 available 为 true,dealerId 不为 null 的 advisorId 的值

pm.test("get timeslots", function(){var data = pm.response.json();

    _.each(data.timeSlots, (result) => {if(result.available == true && result.advisorId != null){console.log(result.advisorId)
        }
    })
})

6. 把所有的符合条件 5 的 advisorId 存到全局变量

把所有的 advisorID 存到一个数组中,名为 advisorIds 的全局变量中。
应用 JSON.stringify(), 把数组值作为一个 string 存起来。

    var data = pm.response.json();
    let advisorIds = [];

    _.each(data.timeSlots, (result) => {if(result.available == true && result.advisorId != null){advisorIds.push(result.advisorId)
        }
    })

    pm.globals.set("advisorIds", JSON.stringify(advisorIds))

正文完
 0