在用postman進(jìn)行接口測(cè)試的過(guò)程中,如果接口之間有依賴,那必然涉及到需要把接口的response結(jié)果的值提取出來(lái)給下一個(gè)接口使用。
今天我們就來(lái)講一講如何提取一個(gè)json類型的response里的數(shù)據(jù)。
假設(shè)我們的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.提取第一個(gè)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存到一個(gè)數(shù)組中,名為advisorIds的全局變量中。
使用JSON.stringify(), 把數(shù)組值作為一個(gè)string存起來(lái)。
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))