JMeter - 将线程数传递给多个线程组

JMeter - Passing the number of threads to multiple thread groups

我有一个文件,我在其中指定每个线程组的线程数。
我的目标是运行并发所有线程组与从文件中读取的线程数。

我当前的算法:测试计划中的第一个线程组称为设置。
我读取数据文件到局部变量。
使用 BeanShell 采样器,我将这些变量转换为属性变量。
在每个线程组中,线程数是通过属性变量定义的。

如果我运行线程组连续,没有问题。
但我需要 运行 它们 并行 。我想象线程组可以在设置组完成读取该组的线程数之前尝试 运行。那么那组永远不会运行。

感谢任何想法和建议。

My current algorithm: I have the first Thread Group in the Test Plan called Setup. I read the data file to the local variables. With the BeanShell Sampler, I convert those variables into the properties variables. In each Thread Group, the number of threads is defined via the properties variable.

您可以使用 Property File Reader。这将在任何线程组启动之前加载。所以你不会遇到任何问题。

如果您不喜欢 属性 文件 Reader,无论您做什么 - 读取数据文件并将它们转换为属性 - 在 setUp Thread Group 中执行。

它将在任何线程组启动之前执行

您可以通过至少两种方式通过 JMeter 属性定义线程数:

  1. user.properties文件中(该文件位于JMeter的"bin"文件夹中,需要重启JMeter才能选择属性向上)

    threads=100
    
  2. 或者您可以通过 -J 命令行参数执行相同的操作,即启动 JMeter 为:

    jmeter -Jthreads=100 -n -t ....
    

在您的线程组中,您可以通过 __P() function 引用 属性,例如:

 ${__P(threads)}

也可以有 "default" 值,在 "threads" 的情况下使用 属性 不会被定义:

${__P(threads,50)}

参考文献: