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