我需要JMeter在1天内模拟28天的活动(通过更改时间戳)。有时间功能,但看起来没有一个支持除当前时间以外的任何东西。我也不想伪造日期,因为像闰年这样的事情会使它变得不正确。
那么如何将时间格式作为当前时间的增量(以纪元为单位的毫秒数),和/或运行1天负载测试的最佳方式是什么,好像时间要快28倍? / p>
更新: 谢谢Dmitri T!我能够修改你所需要的答案(我必须限制在上午8点到下午5点之间发生的小时事件)
对于那些需要它的人,我在JSR223 PreProcessor中使用了以下内容
timestamp=new Date();
timestamp.setDate(timestamp.getDate() - Math.floor(Math.random() * (28)));
timestamp.setHours(8,0,0,0);
timestamp.setTime(timestamp.getTime() + Math.floor(Math.random() * (1000*60*60*9)));
vars.put("TIMESTAMP", timestamp.toISOString());
答案 0 :(得分:2)
您可以使用__time()和__longSum()功能组合来模拟此项,例如:
${__time(,)}
- 我猜你已经知道了现在+ 28天:${__longSum(${__time(,)},2419200000,)}
- 其中2419200000
1000 * 60 * 60 * 24 * 28
^ ^ ^ ^ ^
ms sec min hour day
如果由于某种原因你的Unix时间戳没有播放,你可以使用__javaScript()函数将它们转换为人类可读的格式,如:
${__javaScript(new Date(${__longSum(${__time(,)},2419200000,)}),)}
演示:
参考文献: