jmeter 使用json提取响应数据中更新日期最新的时间

目标:接口响应的数据中、我需要提取更新时间最新的那条数据

接口响应内容如下:

[
    {
        "diff_qty": -1077.0,
        "br_factory_name": "测试工厂",
        "factory_code": "测试SD",
        "factory_name": "测试基地",
        "output_qty": 68930.0,
        "target_output_qty": 70007.0,
        "br_factory_code": "CSZZ4",
        "data_type": "D",
        "period_wid": 20221026,
        "bd_code": "M1006",
        "reach_rate": 98.46,
        "rn": 1,
        "bd_name": "生活测试",
        "last_update_date": "2022-10-28 07:16:04"
    },
    
    .... //这里省略n条数据

    {
        "diff_qty": -25541.0,
        "br_factory_name": "饮品测试",
        "factory_code": "ceTest",
        "factory_name": "新增测试",
        "output_qty": 300980.0,
        "target_output_qty": 326521.0,
        "br_factory_code": "CSZZ4PZZ4",
        "data_type": "M",
        "period_wid": 202211,
        "bd_code": "M1007",
        "reach_rate": 92.18,
        "rn": 1,
        "bd_name": "生活新增",
        "last_update_date": "2022-11-07 17:36:14"
    }
]

1、在请求后新增一个json提取器、通过debug sample 可以看到提取的内容如下:

 

2、新增一个jsonPath提取器、获取响应列表的长度 (提示:使用jsonPath需要先安装插件)

 3、新增一个后置处理器、并提取最大的日期响应数据

import java.util.ArrayList;  //jmeter自带的,直接导入即可


List values =new ArrayList();
for (int i=1;i<=${yhrLen};i++){         //提取出来的长度放这里,作为循环的条件
    values.add(vars.get("timeNew_"+i).toString());  //通过i 来获取json提取出来的每个数
    }
vars.put("max",Collections.max(values)); //通过Collections.max()获取最大的值、如果要最小的 则用.min()
 Str = vars.get("max");
 log.info("提取出来最大的时间戳" +Str);

4、查看提取的结果:

End

posted @ 2022-11-07 18:11  miracle2  阅读(245)  评论(0编辑  收藏  举报