1. 程式人生 > 實用技巧 >輕鬆搞定把jmeter結果資料寫入到指定檔案

輕鬆搞定把jmeter結果資料寫入到指定檔案

背景:

在日常的功能測試或者效能測試的時候,需要把結果中指定的資料儲存到指定的檔案,進行使用,發現 jmeter 自帶的檔案寫入,沒有自己需要的,預設只支援 XML 的結果儲存,那麼接下來我們圍繞 beanshell 來實現這個功能。

下面從兩個方面來實現:

一、儲存介面返回指定的資料

二、從資料庫用 SQL 語句取資料,儲存結果到指定檔案中

一、儲存介面返回指定的資料

介面:登入

需求:提取 token 值

1.新建 HTTP 請求

請求返回的結果,這裡直接用 JSON 顯示:

image.png

2.新建 JSON 提取器

image.png

3.除錯,看有沒有獲取到值

新增 debug sampler

image.png

4.執行,檢視 debug sampler 響應資料裡面 token 有沒有取到值

image.png

5.新增 beanshell 取樣器

image.png

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();

image.png

7.執行,可以迴圈多次寫入資料

image.png

image.png

二、從資料庫用 SQL 語句取資料,儲存結果到指定檔案中

需求:用 SQ 語句查詢出資料,儲存結果到檔案中

1.新增 SQL 語句的配置元件

image.png

image.png

2.新增 SQL 語句取樣器

image.png

image.png

--提取 token 的值,並指定 token 輸出的左邊界值,這裡取出 5 行資料

SELECT CONCAT('"token_num":',token,'') FROM cb_account LIMIT 5

image.png

3.新增正則表示式,提取 SQL 執行之後返回的結果值

image.png

引用名稱:token_num

正則表示式:"token_num":(.+)

模板:$1$

匹配數字:-1 (取出所有的值)

image.png

4.除錯,看有沒有獲取到值

新增 debug sampler

image.png

5.執行,可以看到獲取到了所有的查詢結果

image.png

image.png

可以看到在引用變數後面加上數字,從 2 開始,那麼下面要怎麼做呢?

6.新增 beanshell 取樣器

image.png

程式碼:

//指定需要寫入到哪個檔案,格式: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();

image.png

7.執行檢視結果:

image.png

本文由檸檬班庫裡老師原創,轉載需註明出處!

想了解更多諮詢的同學掃描下方二維碼,可以加Q群領取學習資料:753665853備註:CSDN