使用变量进行线程组加速时间

Mer*_*rcy 5 jmeter

如何使用jmeter变量配置线程组加速时间,我尝试了两个线程数和加速时间.没有线程工作正常,但是上升时间采用默认值1并且变量值不起作用,感谢任何帮助

Dmi*_*i T 13

不能在线程组设置中使用变量,因为在读取任何变量之前,在启动期间初始化线程组.

如果你需要使线程数和/或加速周期可配置使用__P()函数,如:

  • ${__P(threads,)}
  • ${__P(rampup,)}

属性

上述threadsrampup属性可以通过以下几种方式定义:

  1. 如果在命令行非GUI模式下运行JMeter,则可以通过-J命令行键传递属性

    jmeter -Jthreads=50 -Jrampup=30 -n -t /path/to/your/testplan.jmx
    
    Run Code Online (Sandbox Code Playgroud)

    相同的方法适用于GUI模式,但不建议使用GUI进行负载测试,因为它非常耗费资源并且可能会破坏您的测试.

  2. 您可以在user.properties文件(位于JMeter安装的/ bin文件夹中)中定义这些属性,如下所示:

    threads=50
    rampup=30
    
    Run Code Online (Sandbox Code Playgroud)

    重新启动后,JMeter将选择属性,您将能够通过__P()函数引用它们,如上所述.

有关各种JMeter属性及其使用方法的全面信息,请参阅" Apache JMeter属性自定义指南"


小智 2

没有理由它适用于线程数但不适用于启动时间。我一直在成功地使用两者的可配置属性。

如果变量无法正确解析,则 1 是 JMeter 中的默认值。您可能打错字了。要调查该问题,您可能需要使用“属性显示”元素(右键单击 WorkBench/添加/非测试元素/属性显示)。

如果这没有帮助,请发布线程组屏幕截图的链接,以及定义启动时间变量的配置的相关部分。

编辑:示例

这是我通常使用存储在外部文件中的可配置属性的方式(它也适用于启动):

  • 在测试计划级别定义用户定义的变量,例如 someVarName 是 ${__P(someVarName)}
  • 然后使用这个变量,例如在启动中作为 ${someVarName}