进阶JMeter循环

时间:2018-06-19 23:35:22

标签: javascript http jmeter jsr223

假设我有一个用户定义的参数bodies,它是一个用空格分隔的任意长度的列表。我需要根据bodies的长度创建一个HTTP请求循环,并使用其内容。

例如,如果bodies=a b c,那么我需要在标头中使用a进行HTTP POST请求,然后在标头中使用b进行HTTP POST请求,依此类推。

我如何在JMeter中做到这一点?到目前为止,我已经能够使用JSR223采样器设置变量NUM_ITERATIONS(在这种情况下将为3),但是我不知道如何在每次迭代中使用正确的参数进行循环。

1 个答案:

答案 0 :(得分:0)

如果您可以控制“身体”变量的外观,可以将其转换为以下形式:

bodies_1=a
bodies_2=b
bodies_3=c

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


可能的方法之一:

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

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

    在需要的地方。

    JMeter Groovy Demo

参考文献: