有没有办法在 JMeter 5.3 中设置不同线程的用户数?

Is there a way to set up number of users for different thread in JMeter 5.3?

我目前正在我们公司测试小型 API,我需要随机分配一些对 API 所有方法的调用。我正在使用 5.3 版本的 JMeter,公司安全政策,所以如果重要的话我们没有更新的版本。

因为方法的数量大约是 15 我现在的想法是向 JMeter 提供 .properties 文件,其中将包含对 API 的调用总数,然后,通过设置线程组中的 JSR223 采样器我将设置线程中具有随机用户数量的属性。但是,我在这样做时遇到了一个问题:我成功设置了所有属性,但是在另一个线程组中调用 ___property 函数时无法访问它们。

是否有任何方法可以通过脚本设置这些属性并通过 JMeter 函数访问它们?

编辑:添加我在设置线程组中使用的代码以添加属性

jmeter_properties.load(new FileInputStream(new File('env.properties')));
def allUsers = jmeter_properties.get('number.of.users') as Integer;
def random = new Random();
def thisUsers = random.nextInt(allUsers);
allUsers = allUsers - thisUsers;

props.put('getProjectById.users', thisUsers);```

我不确定这是应该通过 JMeter Bugzilla 报告的预期行为还是 JMeter 中的错误,但我确认:

  1. 您的代码是正确的
  2. __P() or by __property() 函数调用
  3. 无法引用生成的值

但是,如果您使用 __groovy() function,属性 就可以很好地解析,所以如果您执行以下操作:

${__groovy(props.get('getProjectById.users'),)}

在第二个(或任何线程组)中,您将获得所需的结果