使用Jmeter如何測試下載介面
效能測試過程中,有時候需要對下載類的功能做壓測,有些同學沒有這方面的測試經驗,比較迷茫,本文簡單介紹下如何測試下載類的請求
1、首先使用fiddler抓包,知道是一個http型別的請求,有一個post請求和兩個get請求,首先post發起下載請求,最後get獲取請求檔案
2、我們只需要在最後的get請求執行完之後獲取該請求介面返回的檔案流,然後寫入到本地檔案,就能實現下載效果,使用後置處理器beanshell編寫java程式碼實現
3、推薦使用jmeter錄製功能或者fiddler抓包功能開發指令碼,使用F12除錯,本人測試發現最後下載返回資料的介面未顯示
4、本文介紹jmeter錄製模式
- 一、開啟錄製模版
開啟jmeter,點選檔案》Templates
imageTemplate選擇Recording,代表選擇預設錄製模版的意思,點選create建立
image進入到錄製頁面,設定好瀏覽器代理,點選啟動開始錄製
image在瀏覽器點選下載按鈕,就可以成功錄製到下載請求
image image直接執行請求,我們可以看到/upload/downloadZbwj這個介面會返回下載的檔案流
image
- 二、編寫beanshel指令碼獲取檔案流儲存
右鍵點選獲取檔案流的請求,點選右鍵》新增》後置處理器》BeanShell PostProcessor
image- 程式碼如下
import java.io.*;
import org.apache.jmeter.services.FileServer;
byte[] result = prev.getResponseData(); //用來獲取返回的檔案流
String str = FileServer.getFileServer().getBaseDir(); //獲取指令碼執行目錄,我是在script目錄下執行的指令碼
str = str.replace("script", ""); //將目錄去掉script
String file_name = str+"data//${__time(,)}.cgzbwj"; //拼接目錄,把目錄改成data下,這樣儲存的檔案就在data目錄下,time函式用來獲取時間戳,這樣保證每次下載名字不同
File file = new File(file_name);
FileOutputStream out = new FileOutputStream(file);
out.write(result); //檔案寫入到檔案
out.close();
image
該指令碼程式碼相容windows、linux環境,前提是執行的指令碼目錄結構如下,指令碼儲存到script目錄
image image
- 三、執行測試
執行緒數設定1,迴圈5次,點選執行
image壓測結果,如圖,檔案被正常下載到了data目錄下
image image
如果文章對你有幫助,歡迎關注本人公眾號,公眾號與本平臺文章同步,方便大家查閱,本人會持續推出與測試有關的文章,與大家分享測試技術,每一篇原創文章都是用心編寫,杜絕抄襲複製
QQ技術交流群:加群請輸入驗證資訊 部落格園
微信二維碼關注公眾號:
image關注之後,回覆資源下載,即可獲取本人共享的各種資源下載地址: