高级 JMeter 循环

Advanced JMeter Looping

假设我有一个 user-defined 参数 bodies,它是一个任意长度的 space-delimited 列表。我需要根据 bodies 的长度创建一个 HTTP 请求循环并使用其内容。

例如,如果 bodies=a b c,那么我需要在 header 中使用 a 发出一个 HTTP POST 请求,然后在另一个中使用 b header,依此类推。

我如何在 JMeter 中执行此操作?到目前为止,我已经能够使用 JSR223 采样器设置变量 NUM_ITERATIONS(在本例中为 3),但我不知道如何在每次迭代中使用正确的参数进行循环。

如果您可以控制 "bodies" 变量的外观,您可以将其转换成如下形式:

bodies_1=a
bodies_2=b
bodies_3=c

并使用ForEach Controller迭代所有元素。


可能的方法之一:

  1. 将循环控制器添加到您的线程组并将 ${__groovy(vars.get('bodies').split(' ').size(),)} 表达式放入 "Loop Count" 节
  2. 添加 HTTP Request 采样器作为循环控制器的子项
  3. 添加 HTTP Header Manager 作为 HTTP 请求采样器的子项
  4. 将用户自定义参数的值引用为

    ${__groovy(vars.get('bodies').split(' ')[vars.get('__jm__Loop Controller__idx') as int],)} 
    

    需要的地方。

参考文献: