根据用户命令行参数启用/禁用Jmeter“持续时间”调度程序

时间:2019-02-22 10:39:20

标签: docker command-line jmeter scheduler

我已经配置了Jmeter并对其进行了docker化,允许用户通过docker run即通过命令行将3个参数传递给命令行。

  
      
  1. 线程
  2.   
  3. 循环计数
  4.   
  5. 持续时间
  6.   

现在,我想使用户能够选择通过循环计数对特定数量的循环或通过持续时间进行特定时间的运行特定测试。但是问题是用户是否提供loopCount但不提供Duration,则测试失败,但如果在JMeter测试中禁用了Scheduler,则测试成功。 但是,如果禁用了调度程序,则不会兑现用户传递给Duration参数的值。只是想知道是否有一种方法可以基于用户传递的参数在Jmeter中启用/禁用调度程序。

1 个答案:

答案 0 :(得分:2)

当用户提供loopCount时,它优先于持续时间。

因此要通过持续时间进行控制:

  • 在循环计数中设置-1

要通过loopCount控制:

  • 设置loopCount
  • 在“持续时间”中设置一个很高的值

或者,编辑jmx文件并替换:

 <boolProp name="ThreadGroup.scheduler">false</boolProp>

并使用__P函数:

 <boolProp name="ThreadGroup.scheduler">${__P(enableScheduler)}</boolProp>

并启用在命令行中设置的持续时间:

  

-JenableScheduler = true

禁用其使用:

  

-JenableScheduler = false

如果您想了解有关JMeter和性能测试的更多信息,此book可以为您提供帮助。