JMeter基础14 -- 时间戳打印

在使用jMeter做接口测试时,有些时候接口请求参数需要使用时间戳。

JMeter中提供了简单的时间戳函数供调用

其中 -年:yyyy,月:MM ,日:dd, 时:HH ,分:mm ,秒:ss, 毫秒:SS(注意大小写)
正常年月日时分秒格式可以写为:yyyy-MM-dd HH:mm:ss


函数助手对话框

image.png

在写接口测试时,遇到有时间相关参数的接口,留心不要把时间写死了,不然过一段时间过期后接口可能会报错。
时间戳的几种用法:
1.打印utc时间:

 ${__time(yyyy-MM-dd,)}T${__time(HH:mm:ss.SS,)} 

2.给请求添加时间戳


image.png

关于时间偏移timeshift
我们可以使用beanshell取样器自己生成,也可以使用简单的方法,调用jmeter现成的函数:

__TimeShift(格式,日期,移位,语言环境,变量):可对日期进行移位加减操作

“PT20.345S”解析为“20.345秒”
“PT15M”解析为“15分钟”
“PT10H”解析为“10小时”
“P2D”解析为“2天”
“P2DT3H4M”解析为“2天,3小时和4分钟”
“P-6H3M”解析为“-6小时+3分钟”
“-P6H3M”解析为“-6小时-3分钟”
“-P-6H + 3M”解析为“+6小时和-3分钟”

指定格式:
${__timeShift(yyyy-MM-dd HH:mm:ss,,PT20.345S,,)}:#以指定格式创建当前日期,再加上20.345S
${__timeShift(dd-MM-y-HH-mm-ss,,P1DT3H4M,,)}#以指定格式创建当前日期,再加上一天,三小时和四分钟
${__timeShift(dd/MM/yyyy,,P-1D,,)}#以指定格式创建当前日期,减去一天
${__timeShift(dd/MM/yyyy,,P365D,,)}#以指定格式创建当前日期,再加上365天
image.png
image.png

附代码

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

try{
Date date =new Date(); //获取当前时间
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String nowDate = df.format(date);
Calendar cal = Calendar.getInstance();
cal.setTime(df.parse(nowDate));
cal.add(Calendar.DAY_OF_YEAR,+1);//时间偏移1天
String sdate = df.format(cal.getTime());
vars.put("sdate",sdate);

}
catch(Exception e){
}

你可能感兴趣的:(JMeter基础14 -- 时间戳打印)