如何从 JMeter 的 ForEach Controller 中的 vars 中获取对象

how to get object from vars in ForEach Controller in JMeter

说我已经在上次请求的 post beanshell 处理器上设置了一个列表。

 List list = Arrays.asList("a","b");
 vars.putObject("list", list);

如何将每个列表值应用于 ForEach 控制器中的请求?谢谢!

  1. ForEach Controller cannot operate on objects, you have to create JMeter Variables 形式为:

    var_1=a
    var_2=b
    

    您可以使用 vars shorthand 为 JMeterVariables class 实例创建 JMeter 变量,例如:

    vars.put("var_1", "a");
    vars.put("var_2", "b");
    

  2. 然后您可以配置 ForEach 控制器使用 var 前缀并将输出存储到 ${current_var} JMeter 变量:

  3. 就是这样,ForEach Controller会迭代创建的变量:


请注意,starting from JMeter 3.1 it's recommended to use JSR223 Test Elements and Groovy language for scripting as Groovy performance is much better than Beanshell. Moreover Groovy is more "modern" language, it supports all the new Java features and provides extra functionality 在标准 Java SDK 之上。