輕鬆搞定把jmeter結果資料寫入到指定檔案
背景:
在日常的功能測試或者效能測試的時候,需要把結果中指定的資料儲存到指定的檔案,進行使用,發現 jmeter 自帶的檔案寫入,沒有自己需要的,預設只支援 XML 的結果儲存,那麼接下來我們圍繞 beanshell 來實現這個功能。
下面從兩個方面來實現:
一、儲存介面返回指定的資料
二、從資料庫用 SQL 語句取資料,儲存結果到指定檔案中
一、儲存介面返回指定的資料
介面:登入
需求:提取 token 值
1.新建 HTTP 請求
請求返回的結果,這裡直接用 JSON 顯示:
2.新建 JSON 提取器
3.除錯,看有沒有獲取到值
新增 debug sampler
4.執行,檢視 debug sampler 響應資料裡面 token 有沒有取到值
5.新增 beanshell 取樣器
6.上程式碼
//指定需要寫入到哪個檔案,格式:TXT,csv
FileWriter file = new FileWriter("D:\apache-jmeter-5.0\token_num.txt",true);
//建立一個字元快取輸出流
BufferedWriter out = new BufferedWriter(file);
//寫檔案內容
//vars.get:獲取 jmeter 中的變數值
out.write(vars.get("token")+"\n");
//關閉寫資料流
out.close();
//關閉檔案
file.close();
7.執行,可以迴圈多次寫入資料
二、從資料庫用 SQL 語句取資料,儲存結果到指定檔案中
需求:用 SQ 語句查詢出資料,儲存結果到檔案中
1.新增 SQL 語句的配置元件
2.新增 SQL 語句取樣器
--提取 token 的值,並指定 token 輸出的左邊界值,這裡取出 5 行資料
SELECT CONCAT('"token_num":',token,'') FROM cb_account LIMIT 5
3.新增正則表示式,提取 SQL 執行之後返回的結果值
引用名稱:token_num
正則表示式:"token_num":(.+)
模板:$1$
匹配數字:-1 (取出所有的值)
4.除錯,看有沒有獲取到值
新增 debug sampler
5.執行,可以看到獲取到了所有的查詢結果
可以看到在引用變數後面加上數字,從 2 開始,那麼下面要怎麼做呢?
6.新增 beanshell 取樣器
程式碼:
//指定需要寫入到哪個檔案,格式:TXT,csv
FileWriter fstream = new FileWriter("D:\apache-jmeter-5.0\token_num.csv",true);
//建立一個字元快取輸出流
BufferedWriter out = new BufferedWriter(fstream);
//返回的結果有值從數字 2 開始,一共有 5 次,那麼我們這裡就小於等於 6
for(int num=2; num<=6; num++){
//拼接變數名稱
token_num = "token_num"+"_"+num;
System.out.println(token_num);
//把拼接的名稱賦值給 token_num
vars.put("token_num",token_num);
System.out.println(vars.get(token_num));
//vars.get()獲取到變數名稱,並和上面返回的 token_num_(2,3,4,5,6)名稱一致,取到變數的值
out.write(vars.get(token_num)+"\n");
}
out.close();
fstream.close();
7.執行檢視結果:
本文由檸檬班庫裡老師原創,轉載需註明出處!
想了解更多諮詢的同學掃描下方二維碼,可以加Q群領取學習資料:753665853備註:CSDN