性能測試過程中,有時候需要對下載類的功能做壓測,有些同學沒有這方面的測試經驗,比較迷茫,本文簡單介紹下如何測試下載類的請求
1、首先使用fiddler抓包,知道是一個http類型的請求,有一個post請求和兩個get請求,首先post發起下載請求,最后get獲取請求文件
2、我們只需要在最后的get請求執行完之后獲取該請求接口返回的文件流,然后寫入到本地文件,就能實現下載效果,使用后置處理器beanshell編寫java代碼實現
3、推薦使用jmeter錄制功能或者fiddler抓包功能開發腳本,使用F12調試,本人測試發現最后下載返回數據的接口未顯示
4、本文介紹jmeter錄制模式
- 一、打開錄制模版
- 打開jmeter,點擊文件》Templates
- Template選擇Recording,代表選擇默認錄制模版的意思,點擊create創建
- 進入到錄制頁面,設置好瀏覽器代理,點擊啟動開始錄制
- 在瀏覽器點擊下載按鈕,就可以成功錄制到下載請求
- 直接執行請求,我們可以看到/upload/downloadZbwj這個接口會返回下載的文件流
- 二、編寫beanshel腳本獲取文件流保存
- 右鍵點擊獲取文件流的請求,點擊右鍵》添加》后置處理器》BeanShell PostProcessor
- 代碼如下
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();
3. 該腳本代碼兼容windows、linux環境,前提是執行的腳本目錄結構如下,腳本保存到script目錄
- 三、執行測試
- 線程數設置1,循環5次,點擊執行
- 壓測結果,如圖,文件被正常下載到了data目錄下
如果文章對你有幫助,歡迎關注本人公眾號,公眾號與本平台文章同步,方便大家查閱,本人會持續推出與測試有關的文章,與大家分享測試技術,每一篇原創文章都是用心編寫,杜絕抄襲復制
QQ技術交流群:加群請輸入驗證信息 CSDN
微信二維碼關注公眾號:
關注之后,回復資源下載,即可獲取本人共享的各種資源下載地址: