首页 > 解决方案 > Jmeter中每个线程的增量日期

问题描述

我有预约的要求,值不应该重叠。所以我必须增加每个线程的开始时间和结束时间,它应该考虑从上午 9:00 到下午 6:00 的时间。我在下面写了 Groovy 代码增加日期。但是对于每个线程,我都得到相同的值。下面是日志查看器,我们可以在其中看到,对于所有 4 个线程,值都没有改变。任何帮助,将不胜感激。

def now = new Date()
log.info('Before: ' + now.format('HH:mm'))
use(groovy.time.TimeCategory) {
    def nowPlus60Mins = now + 60.minutes
    def nowPlus15Mins = nowPlus60Mins + 15.minutes
    props.put('After',nowPlus60Mins.format('HH:mm'));
    props.put('End',nowPlus15Mins.format('HH:mm'));
    log.info('After: ' + props.get('After'))
     log.info('End: ' + props.get('End'))
}

在此处输入图像描述

标签: jmeterjmeter-5.0jsr223jmeter-4.0

解决方案


根据JMeter 文档

属性与变量不同。变量是线程本地的;属性对所有线程都是通用的

因此,您正在做的是覆盖该值,因此所有线程都使用相同的(最后一个)线程。

考虑从propsto切换vars,你应该得到预期的结果。

此外,JMeter 提供了__timeShift() 函数,因此您甚至不需要任何自定义 Groovy 脚本

在此处输入图像描述


推荐阅读