2014-03-05 21 views
0

我試圖運行具有下列流程的測試計劃每次的時間n個和的JMeter負載測試: -如何運行,其中一個HTTP請求執行與不同的參數

1)HTTP請求調用返回json數據的第一個web服務 2.)Bean shell後處理器解析響應並創建一個數組並將其設置爲變量中的一個鍵值。 3.)(問題)對於數組中的每個元素,應該使用該數組元素作爲請求的參數發送httpt請求。

爲豆殼後處理器中的代碼是: -

import org.json.JSONArray; 
import org.json.JSONObject; 
import java.util.Random; 

String jsonString = prev.getResponseDataAsString(); 
JSONObject response= new JSONObject(jsonString); 
JSONArray sba=response.getJSONArray("sba"); 
JSONArray si_id_list=new JSONArray(); 
for(int i=0;i<sba.length();i++){ 
    si_id_list.put(sba.getJSONObject(i).getString("si_id")); 
} 

vars.put("si_id", si_id_list.toString()); 

是否有可能使用這個數組來傳遞輸入到另一個http請求,一次一個。

回答

1

我會建議修改你的BeanShell腳本如下:

import org.json.JSONArray; 
import org.json.JSONObject; 
import java.util.Random; 

String jsonString = prev.getResponseDataAsString(); 
JSONObject response= new JSONObject(jsonString); 
JSONArray sba=response.getJSONArray("sba"); 
JSONArray si_id_list=new JSONArray(); 
for(int i=0;i<sba.length();i++){ 
    si_id_list.put(sba.getJSONObject(i).getString("si_id")); 
    vars.put("si_id_"+i, sba.getJSONObject(i).getString("si_id")); 

} 

之後,你必須變量,如si_id_1si_id_2等持有相關SI_ID值。

根據Using Regular Expressions in JMeter,您將能夠利用JMeter Foreach Controller迭代JSON數組的所有成員。

相關問題