WEB端系統,經常會有一些導出功能。這些功能的導出,是后台經過各種拼裝,以數據流的形式進行下載。這個過程,會隨着數據量的增加,對服務器產生較大壓力且下載時間變長。有時並發下載就會導致系統變的特別慢。為此,需要對導出功能進行下性能測試。
一、下載的關鍵
導出性能下載測試需要通過“BeanShell 取樣器”,用到一段JAVA代碼,用以獲取下載文件。,代碼如下:
import java.io.*;
byte[] result = prev.getResponseData();
String file_name = "D:/download-files/guojigenzong-${index}.xlsx";
File file = new File(file_name);
FileOutputStream out = new FileOutputStream(file);
out.write(result);
out.close();
二、下載測試的過程
1、發送查詢請求,比如查詢某個時間段的數據
2、導出請求,導出對應的數據
頁面查詢出數據后,點擊頁面的導出或者export,會導出選中的數據,或者前面查詢出的數據
3、使用“BeanShell 取樣器,獲取文件。
import java.io.*;
byte[] result = prev.getResponseData();
String file_name = "D:/download-files/guojigenzong-${index}.xlsx";
File file = new File(file_name);
FileOutputStream out = new FileOutputStream(file);
out.write(result);
out.close();
4、BeanShell代碼文件中的index用以生成不同的序號進行區分,這個是在前面定義了一個計數器
5、下載結果的斷言
實際執行中,發現文件是能下載,但有時文件內容為空,那么可以增加一個斷言,用以標明下載是否成功,當然下載不多時,也可以在下載文件夾中進行查看
此斷言需要添加在步驟2后面
6、如果需下載多中類型的文件,可以修改代碼中文件名字,用csv文件配置來讀取
String file_name = "D:/download-files/${filename}-${index}.${fextension}";