Docker 启用/禁用Jmeter“;“持续时间”;基于用户命令行参数的调度器

Docker 启用/禁用Jmeter“;“持续时间”;基于用户命令行参数的调度器,docker,command-line,jmeter,scheduler,Docker,Command Line,Jmeter,Scheduler,我已经配置了Jmeter并对其进行了停靠,允许用户通过docker run将3个参数传递给命令行,即 线程 循环计数 持续时间 现在,我想让用户能够选择通过循环计数为特定数量的循环运行特定测试,或者通过持续时间为特定时间运行特定测试。但问题是,如果用户提供loopCount但不提供Duration测试失败,但如果在JMeter测试中禁用了调度程序,则测试成功。 但是,如果禁用了调度程序,则用户传递给Duration参数的值将不被接受。只是想知道是否有一种方法可以根据用户传递的参数在Jmeter中

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

  • 线程
  • 循环计数
  • 持续时间
  • 现在,我想让用户能够选择通过循环计数为特定数量的循环运行特定测试,或者通过持续时间为特定时间运行特定测试。但问题是,如果用户提供
    loopCount
    但不提供
    Duration
    测试失败,但如果在JMeter测试中禁用了调度程序,则测试成功。
    但是,如果禁用了调度程序,则用户传递给
    Duration
    参数的值将不被接受。只是想知道是否有一种方法可以根据用户传递的参数在Jmeter中启用/禁用调度器

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

    因此,要按持续时间进行控制:

    • 在循环计数中设置-1
    要通过循环计数进行控制,请执行以下操作:

    • 设置循环计数
    • 设置非常高的持续时间值
    或者,编辑jmx文件并替换:

     <boolProp name="ThreadGroup.scheduler">false</boolProp>
    
    false
    
    并使用_p函数:

     <boolProp name="ThreadGroup.scheduler">${__P(enableScheduler)}</boolProp>
    
    ${uuup(enableScheduler)}
    
    要启用在命令行中设置的持续时间,请执行以下操作:

    -JenableScheduler=true

    要禁用它,请执行以下操作:

    -JenableScheduler=false

    如果您想了解更多关于JMeter和性能测试的信息,这将对您有所帮助