一 Jmeter步驟
1.打開jmeter4.0,新建測試計劃,添加線程組。根據實際情況配置線程屬性。
2.添加HTTP請求。根據接口文檔進行配置。
Basic部分修改如下,Advanced部分保持默認。這里的參數id是文件的id,我進行了參數化,方便下載多個不同的文件。
3.添加CSV數據文件設置。
4.在HTTP請求下面添加BeanShell PostProcessor。強調一下,由于jmeter本身是不支持將文件保存到本地的,這里需要寫一點java代碼。
import java.io.*; byte[] result = prev.getResponseData(); String file_name = "D:/download-files/${filename}-${index}.${fextension}"; File file = new File(file_name); FileOutputStream out = new FileOutputStream(file); out.write(result); out.close();
5.添加計數器。目的是區分每次下載的文件。
6.可以在HTTP請求下面添加響應斷言和斷言結果。
7.添加集合點(Synchronizing Timer)。
8.添加監聽器。包括查看結果樹、聚合報告(可配置將數據寫入一個文件test.jtl)、圖形結果、每秒事務數(jp@gc - Transactions per Second)、每秒點擊數(jp@gc - Hits per Second)、jp@gc - PerfMon Metrics Collector等。
二 文件下載接口測試總結
1.最好自己搭建測試環境,如果條件不夠,只能使用開發搭建的測試環境的話,一定要問清楚測試環境的軟硬件配置。比如說負載機與應用服務器是否在同一個局域網(如果跨局域網的話,會經過路由器,可能會有網絡瓶頸)?操作系統是Windows還是Linux?被測機器是物理機還是虛擬機?是否使用磁盤陣列等等。
2.win+R運行,輸入dxdiag,可查看計算機名,操作系統,系統型號,處理器,內存大小。
3.本次測試由于應用服務器不給開放端口,所以無法使用Jmeter自帶的性能監控插件,只能使用Windows自帶的perfmon遠程監控硬件性能。
4.計數器:使每次下載文件命名不同,方便區分。
5.后置處理器:添加一段java代碼,將文件下載到本地。
6.由于jmeter返回的是字節流,當數據量太大時,會發現jmeter完全卡住,為了防止這種情況發生,可以在查看結果樹勾選僅日志錯誤,讓其不顯示,提高性能。
7.測試文件下載接口,jmeter返回的是字節流,怎么判斷服務器有沒有完全返回?response header頭里面有一個content-lenth,添加斷言,可判斷文件是否下載完整。
8.下載的文件大小不超過10M?應該是jmeter的配置問題,具體沒弄清楚原因,重新下載一個jmeter就好了。
9.報錯java.lang.OutOfMemoryError: Java heap space?解決方式:jmeter報錯:內存溢出
10.CSV參數配置文件中千萬不要出現空行!因為jmeter會報錯:響應數據HTTP Status 500 & 后臺日志Typed variable declaration : Object constructor
2023最新Jmeter接口測試從入門到精通(全套項目實戰教程)
?