2017-05-03 15 views
1

的JMeter的ForEach控制器可被用于迭代与相同前缀等变量,如何在阵列上使用ForEach控制器?

myVar_1 
myVar_2 
myVar_3 

但在我的情况下输入变量是一个字符串数组,[ "val1", "val2", "val3" ]如何遍历一个数组并为每个值发送单独的请求?

+0

您是否从响应中提取数组? –

+0

是的。我通过在响应中应用JSON路径提取器从响应中提取数组。 – Nilesh

回答

4

你将不能够这样JSON Array喂传递给ForEach控制器,但可以转换转换成可利用的ForEach控制器

  1. 可以理解的形式添加JSR223 Sampler变量后举行此JSON阵列被定义
  2. 将以下代码进入 “脚本” 区域:

    def json = new groovy.json.JsonSlurper().parseText(vars.get("yourInputVariable")) 
    def counter = 1 
    json.each { 
        vars.put("myVar_" + counter, it) 
        counter++ 
    } 
    

    与变量持有JSON阵列

  3. 添加的ForEach控制器下的JSR223采样和执行的实际名称替换yourInputVariable“正常”的配置,你会做它为myVar_1, myVar_2,... - 它会正常工作的JSR223采样创建相关变量基于JSON数组的数据。

请参阅Parsing and producing JSON - GroovyGroovy Is the New Black文章的更多信息。

0

与用于相同前缀变量的方式相同。

对于可变myVar

myVar = ["val1", "val2", "val3"]; 
//Following variables are automatically created 
myVar_1 = "val1"; 
myVar_2 = "val2"; 
myVar_3 = "val3"; 

的ForEach控制器将上myVar_1, myVar_2, myVar_3

使用调试采样用于确保。

jmeter版本:3.1 r1770033