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

时间:2015-08-09 17:25:47

标签: jmeter

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

3 个答案:

答案 0 :(得分:11)

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

如果您需要使线程数和/或上升周期可配置,请使用__P()函数,如:

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

Properties

前面提到的threadsrampup属性可以通过多种方式定义:

  1. 如果您在command-line non-GUI mode中运行JMeter,则可以通过-J命令行键传递属性

    jmeter -Jthreads=50 -Jrampup=30 -n -t /path/to/your/testplan.jmx
    

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

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

    threads=50
    rampup=30
    

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

  3. 有关各种JMeter属性及其使用方法的全面信息,请参阅Apache JMeter Properties Customization Guide

答案 1 :(得分:1)

没有理由说它适用于线程数,但不适用于加速时间。我成功地使用了可配置属性。

如果无法正确解析变量,则

1是JMeter中的默认值。你可能打错了。要调查此问题,您可能需要使用“Property Display”元素(右键单击WorkBench / Add / Non-Test Element / Property Display)。

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

编辑:示例

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

  • 在测试计划级别定义用户定义的变量,例如someVarName是$ {__ P(someVarName)}
  • 然后使用此变量,例如在加速为$ {someVarName}

答案 2 :(得分:1)

您不能对这些值使用变量,只能使用属性:

  

属性与变量不同。变量是线程的本地变量;属性对所有线程都是通用的,需要使用__P或__property函数进行引用。