在用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))