jmeter-10-提取多个id拼接请求数据及日期时间偏移,你会了吗?
作者:互联网
前言
平时在使用 Jmeter 过程中,可能会遇到各种需求的参数需要处理,比如提取id拼接数组,又如时间日期处理等等
那么接下来将记录平时个人使用时遇到过挺多的场景!go go go!
一、拼接请求数据
1、勾选:Compute concatenation var (suffix_ALL)
会得到 team_ids=id1,id2,id3,idx,这种一般适用于url query入参
2、BeanShell 后置处理程序
会得到 numList="id1","id2","idx",这种一般用于json body入参,如下
{ "data":[1,2,3,4,5] }
在数组中引用:[${numList}],或改造一下头拼接 [ 尾拼接 ] 得到numList=["id1","id2","idx"]
int num = Integer.valueOf("${p_projectIds_matchNr}"); String numList = ""; for (i=1; i<=num; i++){ String str = vars.get("p_projectIds_" + i); numList += "\"" + str; if(i < num){ numList += "\","; }else{ numList += "\""; } } vars.put("numList", numList);
二、日期时间偏移
1、timeShift函数使用
官方文档:https://jmeter.apache.org/usermanual/functions.html#__timeShift
当前时间+1小时,如:2022-06-21 09:41:58
${__timeShift(yyyy-MM-dd HH:mm:ss,,PT1H,,)}
2、毫秒时间戳转秒:${__time(/1000,)}
如果是要偏移怎么办?
偏移+1天,得到是毫秒:${__timeShift(,,P1D,,)}
1661129954599
偏移-1小时,得到是秒:1661129954
String time = "${__timeShift(,,PT1H,,)}"; time = time.substring(0, 10); vars.put("time",time);
3、获取月的第一天、最后一天日期:
import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; String yesterday="${__timeShift(yyyy-MM-dd,,-P1d,,)}"; //昨天, 所属月份的整月20211201-20211231 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); //格式化为年月日 //月头 Calendar beginCalendar = Calendar.getInstance(); beginCalendar.setTime(sdf.parse(yesterday)); beginCalendar.set(Calendar.DAY_OF_MONTH, beginCalendar.getActualMinimum(Calendar.DAY_OF_MONTH)); String begin = sdf.format(beginCalendar.getTime()); //月尾 Calendar calendar = Calendar.getInstance(); calendar.setTime(sdf.parse(yesterday)); calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); String end =sdf.format(calendar.getTime()); vars.put("date_begin",begin); vars.put("date_end",end);
那其他呢?
当日:${__time(yyyy-MM-dd 00:00:00)} 、${__time(yyyy-MM-dd 23:59:59)}
当月至今:${__time(yyyy-MM-01 00:00:00)} 、${__time(yyyy-MM-dd 23:59:59)}
当年至今:${__time(yyyy-01-01 00:00:00)} 、${__time(yyyy-MM-dd 23:59:59)}
欢迎来大家QQ交流群一起学习:482713805,博主微信+:gogsxl
标签:__,10,00,MM,yyyy,time,Calendar,jmeter,id 来源: https://www.cnblogs.com/gsxl/p/16586533.html