JMeter 时间函数
__time:以各种格式返回当前时间(JMeter 2.2+)
${__time(格式,变量名)}
格式:要传递给 SimpleDateFormat 的格式,如果省略了格式字符串,则该函数返回自纪元以来的当前时间(以毫秒为单位)。如果格式匹配 “/ddd”(其中 ddd 是十进制数字),则该函数返回以毫秒为单位的当前时间除以 ddd 的值。
变量名:要设置的变量名称
${__time(,)} 返回当前时间戳(毫秒级,13位)
${__time(/1000,)} 返回当前时间戳(秒级,10位)
${__time(yyyy-MM-dd,)} 以 yyyy-MM-dd 格式返回当前日期(如:2019-10-23)
${__time(yyyy-MM-dd HH:mm:ss:SSS,time)} 以 yyyy-MM-dd HH:mm:ss:SSS 格式返回当前时间(如:2019-10-23 20:08:528),其他元件中可以用 ${time} 引用
__timeShift:返回各种格式的日期,并添加指定的秒数,分钟数,小时数,天数或月数(JMeter 3.3+)
${__time(格式,日期,位移,区域设置,变量名)}
日期:以第一个参数“格式”设置的格式转换指定日期,如果省略,则日期设置为现在。
位移:根据文本表示的持续时间(如PnDTnHnMn.nS)转换成指定的秒数,分钟数,小时数或天数。
区域设置:语言环境的字符串格式。语言代码必须是小写,国家代码必须大写,分隔符必须是下划线(如:en_EN)。如果省略,则默认情况下该函数使用 Apache JMeter 当前语言环境。(参考:https://www.oracle.com/technetwork/java/javase/javase7locales-334809.html)
${__timeShift(yyyy-MM-dd HH:mm:ss,,PT20.345S,,)} 以指定格式创建当前日期,再加上20.345S
${__timeShift(yyyy-MM-dd HH:mm:ss,now,P1DT3H4M,,c2)} 以指定格式创建当前日期,再加上1天3小时4分钟
${__timeShift(yyyy-MM-dd,,P-1D,,)} 以指定格式创建当前日期,再减去1天
${__timeShift(yyyy/MM/dd,,P-365D,,)} 以指定格式创建当前日期,再减去365天
${__timeShift(y MMM dd HH:mm:ss,,-P-6H+3M,fr_FR,)} 以法语显示的指定格式创建当前日期,再加上6小时减去3分钟
${__timeShift(yyyy-M-dd,2019-5-21,P365D,,)} 在2019-5-21的基础上加上365天
__RandomDate:在指定日期范围内生成随机日期(JMeter 3.3+)
${__RandomDate(时间格式,开始日期,结束日期,区域设置,变量名)}
开始日期:默认为当前日期
结束日期:必填项
${__RandomDate(,,2020-01-01,,)} 今天到2020-01-01之间的一个日期
${__RandomDate(yyyyMMdd,20190101,20201231,,time)} 返回20190101到20201231之间的一个日期,存储到变量time
BeanShell PreProcessor
import java.text.*; import java.util.Date;
Date currentTime = new Date(); SimpleDateFormat formatter1 = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat formatter2 = new SimpleDateFormat("HH:mm:ss"); String dateString1 = formatter1.format(currentTime); String dateString2 = formatter2.format(currentTime); String dateString = dateString1+" "+dateString2; vars.put("Date",dateString); log.info("当前时间为:"+dateString);