jmeter下載文件測試


使用Jmeter如何測試http下載接口

原著:https://blog.csdn.net/qq_35705138/article/details/106889755?spm=1001.2014.3001.5501

jmeter相關技術交流 :
分類專欄: 接口自動化 性能測試 文章標簽: jmeter
版權
性能測試過程中,有時候需要對下載類的功能做壓測,有些同學沒有這方面的測試經驗,比較迷茫,本文簡單介紹下如何測試下載類的請求
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();
1
2

 

 

 

3. 該腳本代碼兼容windows、linux環境,前提是執行的腳本目錄結構如下,腳本保存到script目錄

 

 

文件夾名稱:

data
result
script(存放腳本的)

 

三、執行測試
線程數設置1,循環5次,點擊執行

壓測結果,如圖,文件被正常下載到了data目錄下


 

 

注意:jmeter下載的文件后綴不一樣,修改成直接下載的后綴打開是一樣的。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM