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