方法1:jmeter time函数处理
1.使用背景
在做接口测试的时候,需要获取时间戳函数,常用的是获取当前时间的时间戳。但有时候为了达到某种预期效果,会需要用未来时间,此时我们就需要在系统时间上进行增加操作。
2.操作步骤
当前时间很容易获取
时间戳表达(精确到毫秒)
当前时间:${__time(,)}
当前时间:${__timeShift(,,,,)}
在当前时间上增加一天:${__timeShift(,,P1d,,)}
在当前时间上增加一小时:${__timeShift(,,PT1H,,)}
在当前时间上增加十分钟:${__timeShift(,,PT10m,,)}
在当前时间上增加二十秒:${__timeShift(,,PT20s,,)}
在当前时间上增加一天小时十分二十秒:${__timeShift(,,P1dT1H10m20s,,)}
明文表达(精确到毫秒)
当前年月日时分秒:${__timeShift(yyyy-MM-dd HH:mm:ss:SSS,,,,)}
当前年月日时分秒:${__timeShift(yyyy-MM-dd HH:mm:ss:SSS,,P5H,,)}
在当前时间上增加一天:${__timeShift(yyyy-MM-dd HH:mm:ss:SSS,,P1d,,)}
在当前时间上增加一小时:${__timeShift(yyyy-MM-dd HH:mm:ss:SSS,,PT1H,,)}
在当前时间上增加十分钟:${__timeShift(yyyy-MM-dd HH:mm:ss:SSS,,PT10m,,)}
在当前时间上增加二十秒:${__timeShift(yyyy-MM-dd HH:mm:ss:SSS,,PT20S,,)}
在当前时间上增加一天一小时十分二十秒:${__timeShift(yyyy-MM-dd HH:mm:ss:SSS,,P1dT1H10m20s,,)}
不带横杠的明文(精确到毫秒)
${__time(YMDHMS,)}
${__time(YYYYMMDHMS,)}
关于减少(1 时=3600000毫秒,需要多长时间自己百度换算)
在当前时间上减少一小时:${__longSum(${__time},-3600000,)}
最后,我们用BeanShell 取样器查看一下
方法2:beasn shell中写代码获取
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
try{
Date date =new Date(); //获取当前时间
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
String nowDate = sf.format(date);
Calendar cal = Calendar.getInstance();
cal.setTime(sf.parse(nowDate));
cal.add(Calendar.DAY_OF_YEAR,+1); //后一天
String orderDate = sf.format(cal.getTime());
cal.add(Calendar.DAY_OF_YEAR,+1); //竞猜下,怎么还是加1
String senderDate = sf.format(cal.getTime());
vars.put("orderDate",orderDate);
vars.put("senderDate",senderDate);
}
catch(Exception e){
}