loadruner 參數化有個功能,能夠設置在腳本每次出現參數時,自動更換參數值。在作jmeter自動化測試過程當中,同一個請求中出現多個參數值,如一個接口能夠添加n個信息的請求html
[
{
"name": "baidu",
"url": "http://www.baidu.com",
"page": 88,
"isNonProfit": true
},
{
"name": "google",
"url": "http://www.google.com",
"page": 88,
"isNonProfit": true
},
{
"name": "163",
"url": "http://www.163.com",
"page": 88,
"isNonProfit": true
}
]
把name,url ,page ,isNonProfit 參數化,可是這參數實際發送請求的時候都會重複,即若是name 參數選擇的是baidu,其餘集體記錄也是baidu。因此jmeter 原來的配置參數功能沒法知足這個需求,只有修改使用beanshell 先從文本中隨機讀取n條參數(這裏的n是3).beanshell腳本爲:shell
// 讀文本文件 public static String lineContent(int lineNumber) throws IOException { File file = new File("D:/jscript/bid.txt");//文件路徑 FileReader fileReader = new FileReader(file); InputStreamReader isr = new InputStreamReader(new FileInputStream(file), "UTF-8"); BufferedReader reader = new BufferedReader(isr); String txt = ""; int lines = 0; String content = ""; while (txt != null) { lines++; txt = reader.readLine(); if (lines == lineNumber) { content = txt; } } reader.close(); fileReader.close(); return content; } // 獲取隨機數 public static int getRand(int max, int min) { Random random = new Random(); return random.nextInt(max) % (max - min + 1) + min; } public static ArrayList getParameters() throws IOException{ ArrayList list=new ArrayList(); while (list.size() != 3) { int lineNumber = getRand(2330, 2); // 參數文件最大行數爲2330 String lineContent = lineContent(lineNumber); if (!list.contains(lineContent)) { list.add(lineContent); } } return list; } //開始執行的地方 ArrayList list = getParameters(); for(int i=0;i<list.size();i++){ String line = list.get(i); String[] item = line.split("\\t"); System.out.println(item[2]); vars.put("name"+String.valueOf(i),item[0]); vars.put("url"+String.valueOf(i),item[1]); vars.put("page"+String.valueOf(i),item[2]); vars.put("isNonProfit"+String.valueOf(i),item[3]); }
這樣就能夠在腳本請求中設置參數爲:dom
[ { "name": "${name0}", "url": "${url0}", "page": ${page0}, "isNonProfit": ${isNonProfit0} }, { "name": "${name1}", "url": "${url1}", "page": ${page1}, "isNonProfit": ${isNonProfit1} }, { "name": "${name2}", "url": "${url2}", "page": ${page2}, "isNonProfit": ${isNonProfit2} } ]
這樣,每條記錄都不同了。知足了測試的須要。測試
歡迎關注公衆號:google