获取jMeter线程已运行的时间


问题内容

也许我在浏览JMeter API 网站方面真的很不好。

但是可以说,我想找出一个线程已经运行了多长时间,在If
Controller或JSR223采样器中,我该怎么做?例如,线程组似乎没有我要找的东西


问题答案:

也许,改为研究JMeterThread
JavaDoc
。如果使用线程组的

Scheduler”选项,则可以使用JMeterThread.getStartTime()JMeterThread.getEndTime()方法。

如果不使用调度程序,则可以使用以下方法:

  1. 将JSR223测试元素(与哪个元素无关紧要)添加到线程组的最开始,并将以下代码放入“脚本”区域:

    ctx.getThread().setStartTime(System.currentTimeMillis())
    
  2. 在线程组的末尾添加另一个JSR223测试元素,并使用以下代码获取当前线程持续时间:

    long started = ctx.getThread().getStartTime()
    

    log.info(‘Thread duration: ‘ + (System.currentTimeMillis() - started))

演示:

JMeter
Groovy线程持续时间

ctxJMeterContextService类的简写。

有关在JMeter测试中使用Groovy的更多详细信息,请参见Apache Groovy-
为什么和应该如何使用它