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

在用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))
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容