如何在一个组中挑选和使用不同数量的用户并让他们在 Jmeter 中完成一些任务

How to pick up and use varying number of users in a group and get them to do some task in Jmeter

想知道是否有人可以提供帮助!

我正在尝试复制一个组可能有不同数量成员的场景。所有这些成员也都附有一个文件。我需要将这些用户和相关文件提取到批处理任务中。目前,我必须将用户数量固定为 15 个才能执行此操作,但我希望对不同数量的用户执行此操作。我已经使用 regEx 提取器来选择这 2 个值并在以下 HTTP 请求中使用它。在所附的图片中,'ReportUids' 和 'ContributerUids' 是有问题的那个。如果有动态,我如何让 Jmeter 拾取这些?

Bactch Script Step 4

您可以使用Beanshell PreProcessor动态添加请求参数。

  1. 将 Beanshell 预处理器添加为您的 Batch Step 3 of 5 请求的子项
  2. 将以下代码放入Beanshell PreProcessor的"Script"区域

    Iterator it = vars.getIterator();
    while (it.hasNext()) {
        Map.Entry var = (Map.Entry) it.next();
        log.info("Processing variable: " + var.getKey());
        if (var.getKey().toString().startsWith("Pld")) {
            sampler.addArgument("ContributorUids", var.getValue().toString());
        }
        if (var.getKey().toString().startsWith("Ruid")) {
            sampler.addArgument("ReportUids", var.getValue().toString());
        }
    
    }
    

有关在 JMeter 中使用 Beanshell 的扩展信息,请参阅 How to Use BeanShell: JMeter's Favorite Built-in Component 指南。

棘手的是,HTTP 方法参数名称的唯一性并不是必须的,因此如何处理重复的参数名称取决于开发人员。 JMeter 使用 Java Properties 来存储参数,因此它将是最新的。如果您还需要修改参数名称 - 您应该可以通过在 Beanshell 之上稍微更改来完成。