Enable/Disable Jmeter "Duration" 基于用户命令行参数的调度器

Enable/Disable Jmeter "Duration" Scheduler based on User command line parameters

我配置了 Jmeter 并 docker 对其进行了配置,允许用户通过 docker 运行 即

向命令行传递 3 个参数
  1. Threads
  2. Loop Count
  3. Duration

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

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

所以要控制时长:

  • 在循环计数中设置-1

通过loopCount控制:

  • 设置循环次数
  • 在持续时间中设置一个非常高的值

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

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

并使用__P函数:

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

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

-JenableScheduler=true

禁用它:

-JenableScheduler=false

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