初级篇·简单时间戳生成
在使用jmeter做接口测试的时候,经常会要用到日期函数,让系统自动生成一些格式化的数据,方便接口测试,jmeter自身就带有时间戳的函数
1、__time():获取时间戳、格式化时间
(1)${__time(yyyy-MM-dd HH:mm:ss:SSS,time)} :格式化生成时间格式 2018-10-26 11:08:23:635
(2)${__time(yyyy-MM-dd HH:mm:ss,time)} :格式化生成时间格式 2018-10-26 11:08:23
(3)${__time(,)} :默认该公式精确到 毫秒 级别, 13位数 1527822855323
(4)${__time(/1000,)} :该公式精确到 秒 级别, 10位数 1527822871
(5)${__time(yyyy-MM-dd,)} : 该公式格式化生成的常规时间为:2018-10-26
(6)${__time(yyMMdd,)} : 该公式格式化生成的时间为:181026
2、__timeShift(格式,日期,移位,语言环境,变量)函数,可以将时间进行移位,对当前时间增加或者减少对应的时间
(1)格式 - 将显示创建日期的格式。如果该值未被传递,则以毫秒为单位创建日期。
(2)日期 - 这是日期值。用于如果要通过添加或减去特定天数,小时或分钟来创建特定日期的情况。如果参数值未通过,则使用当前日期。
(3)移位 - 表示要从日期参数的值中添加或减去多少天,几小时或几分钟。如果该值未被传递,则不会将任何值减去或添加到日期参数的值中。
“P1DT2H4M5S” 解析为“添加1天2小时4分钟5秒”
“P-6H3M”解析为“-6小时+3分钟”
“-P6H3M”解析为“-6小时-3分钟”
“-P-6H + 3M”解析为“+6小时和-3分钟”
(4)、区域设置 - 设置创建日期的显示语言。不是必填项
(5)、变量 - 创建日期的值将被分配给的变量的名称。不是必填项
${__timeShift(yy-MM-dd,2018-10-26,P2D,,)}这种返回的时间就是2018-10-28。 注意2018-10-26必须对应格式yy-MM-dd,否则会返回当天日期。
3、__randomDate(格式,开始时间,结束时间):时间段内随机获取时间
(1)格式默认为yyyy-MM-dd
${__randomDate(yyyy-MM-dd,2018-10-01,2018-10-30)},这种函数就会自动返回20181001-20181030之间的一个日期。
4 获取当天时间的23:59:59,然后转换为时间戳
${__groovy(new java.text.SimpleDateFormat('yyyy-MM-dd HH:mm:ss').parse('${__time(yyyy-MM-dd)} 23:59:59').getTime(),)}
解释:${__time(yyyy-MM-dd)} 23:59:59 是你输入的时间,程序会按照你输入的时间转换为13位毫秒时间戳
你还可以结合时间移位使用:${__groovy(new java.text.SimpleDateFormat('yyyy-MM-dd HH:mm:ss').parse('${__timeShift(yyyy-MM-dd,,-P1D,,)} 23:59:59').getTime(),)}
其中${__timeShift(yyyy-MM-dd,,-P1D,,)}就是你的位移时间,然后转换位时间戳