我已经配置了Jmeter并对其进行了docker化,允许用户通过docker run即通过命令行将3个参数传递给命令行。
- 线程
- 循环计数
- 持续时间
现在,我想使用户能够选择通过循环计数对特定数量的循环或通过持续时间进行特定时间的运行特定测试。但是问题是用户是否提供loopCount
但不提供Duration
,则测试失败,但如果在JMeter测试中禁用了Scheduler,则测试成功。
但是,如果禁用了调度程序,则不会兑现用户传递给Duration
参数的值。只是想知道是否有一种方法可以基于用户传递的参数在Jmeter中启用/禁用调度程序。
答案 0 :(得分:2)
当用户提供loopCount时,它优先于持续时间。
因此要通过持续时间进行控制:
要通过loopCount控制:
或者,编辑jmx文件并替换:
<boolProp name="ThreadGroup.scheduler">false</boolProp>
并使用__P函数:
<boolProp name="ThreadGroup.scheduler">${__P(enableScheduler)}</boolProp>
并启用在命令行中设置的持续时间:
-JenableScheduler = true
禁用其使用:
-JenableScheduler = false
如果您想了解有关JMeter和性能测试的更多信息,此book可以为您提供帮助。