用于启用测试持续时间的JMeter用户定义变量

用于启用测试持续时间的JMeter用户定义变量,jmeter,jmeter-5.0,jmeter-maven-plugin,Jmeter,Jmeter 5.0,Jmeter Maven Plugin,我正在尝试参数化JMeter测试,以便使用相同的测试计划运行负载测试、压力测试以及静置负载测试 为了做到这一点,我将以下内容定义为用户定义变量(测试计划->添加->配置元素->用户定义变量) 现在,在ThreadGroup定义中,我使用这些变量作为 <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Test123" enabled=&q

我正在尝试参数化JMeter测试,以便使用相同的测试计划运行负载测试、压力测试以及静置负载测试

为了做到这一点,我将以下内容定义为用户定义变量(测试计划->添加->配置元素->用户定义变量)

现在,在ThreadGroup定义中,我使用这些变量作为

<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Test123" enabled="true">
        <stringProp name="TestPlan.comments">Test for the endpoint GET /test123</stringProp>
        <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
        <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
          <boolProp name="LoopController.continue_forever">false</boolProp>
          <stringProp name="LoopController.loops">${loopCount}</stringProp>
        </elementProp>
        <stringProp name="ThreadGroup.num_threads">${numberOfThreads}</stringProp>
        <stringProp name="ThreadGroup.ramp_time">${rampUp}</stringProp>
        <boolProp name="ThreadGroup.scheduler">{schedulerEnabled}</boolProp>
        <stringProp name="ThreadGroup.duration">${schedulerDuration}</stringProp>
        <stringProp name="ThreadGroup.delay"></stringProp>
        <boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp>
      </ThreadGroup>
(使用jmeter maven插件) 第一个线程组继续创建无限多的线程,而不是在30秒后关闭线程组

PS:30就是一个例子。当执行静置负载测试时,我将设置一个更高的值

PS:我注意到LoopController.continue_forever被设置为'false',无论循环计数是选择“无限”还是提供值1,都无关紧要。在UI中,我选中“无限”,LoopController.loops的值设置为-1

  • jmeter maven插件:2.7.0
  • JMeter版本:5.1.1

我认为这不是启用/禁用线程生存期设置的正确方法:

<boolProp name="ThreadGroup.scheduler">{schedulerEnabled}</boolProp>
{schedulerEnabled}
与其尝试启用/禁用线程生存期设置,不如使用此
调度持续时间设置本身,例如,如果您计划运行固定数量的循环,请将持续时间设置为非常大的值

也应该可以使用


如果启用/禁用调度程序的功能是您真正需要的,那么您需要事先在.jmx脚本中对其进行修改,即使用编辑器。框架还可以使用简单的YAML语法

谢谢!我删除了schedulerEnabled=${uu P(schedulerEnabled,false)}。并默认设置为true。现在为了运行负载/压力测试,我知道了线程和循环计数的#。我为duration设置了一个很高的值,测试只执行#loopCount的#of threads,即使不满足duration,也会退出。对于静置负载测试,我根据需要指定loopCount=-1和持续时间。
numberOfThreads=50
rampUp=10
loopCount=-1
schedulerEnabled=true
schedulerDuration=30
<boolProp name="ThreadGroup.scheduler">{schedulerEnabled}</boolProp>