JMeter Time Lapse

时间:2016-10-21 15:07:27

标签: jmeter

我需要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());

1 个答案:

答案 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,)}),)}

演示:

Functions time demo

参考文献:

  1. Functions and Variables
  2. The Function Helper Dialog
  3. How to Use JMeter Functions