1、概述
在工作的時候,經常被領導問,這個服務可以抗住多大的併發量?吞吐量是多少?QPS、TPS是多少?伺服器是否需要增加硬體?是否需要做叢集?
剛工作的那幾年,當被問到這些問題時,確實有點蒙,心裡沒有底。
因此雖然是開發工程師,但壓力測試的知識還是需要懂一點的,至少能做到心裡有底。
2、JMeter
JMeter是apache的開源專案,是用Java語言開發的,是一款簡單易用的壓力測試工具。
3、JMeter的下載
可以到 JMeter 官網(http://jmeter.apache.org/)下載
截圖來源於JMeter官網
截圖來源於JMeter官網
4、JMeter的執行
注意:執行JMeter前,先確保已安裝JDK1.8+版本,並新增環境變數。
將下載的zip檔案解壓,在bin目錄下找到 jmeter.bat(Windows) 或 jmeter(macOS) 檔案,雙擊即可。
5、修改JMeter介面語言為簡體中文
選擇 Options —> Choose Language —> Chinese(Simplified)
選擇後,介面的語言會變為簡體中文。
6、配置測試計劃
測試計劃只需要修改下名稱,其他選項預設即可。
7、新增並配置執行緒組
在測試計劃上點選滑鼠右鍵,選擇 新增 —> 執行緒(使用者)—> 執行緒組
配置以下引數:
執行緒數:有多少使用者請求。
Ramp-Up時間(秒):這些使用者請求在多少秒內發起完成,設定為0代表同一時刻併發。
迴圈次數:每個使用者請求多少次。
(實際請求數 = 執行緒數 × 迴圈次數)
8、新增並配置 HTTP請求 取樣器
通常我們測試的都是HTTP介面,線上程組上點選滑鼠右鍵,選擇 新增 —> 取樣器 —> HTTP請求
配置以下引數:
協議:http 或 https。
伺服器名稱或IP:伺服器的域名或IP地址。
埠號:介面的埠號。
HTTP請求型別:GET、POST、PUT、DELETE等。
路徑:介面的請求路徑。
引數:請求的引數(根據實際介面選填)。
9、新增並配置 HTTP資訊頭管理器
有的介面需要配置一些Header資訊才能正常訪問。
線上程組上點選滑鼠右鍵,選擇 新增 —> 配置元件 —> HTTP資訊頭管理器
根據實際情況新增訊息頭
10、新增並配置 監聽器
壓測的結果會顯示在監聽器上,因此我們需要他們,常用的是 察看結果樹 和 聚合報告 這兩個監聽器。
察看結果樹 可以檢視每個請求的介面呼叫詳情。
聚合報告 可以檢視本次壓測的指標結果。
11、開始壓測
滑鼠點選測試計劃或葉子節點,點選【啟動】按鈕,即可開始壓測。
點選 察看結果樹,可以看到每個請求的詳情。
點選 聚合報告,可以檢視本次測試的指標結果。
其中 平均值、中位數、百分位、最小值、最大值的單位都是毫秒(ms)。
12、清除上次壓測資料
當執行下一次壓測時,需要先清理上一次的資料,點選【清除】或【清除全部】按鈕即可。
13、綜述
今天講了使用JMeter進行壓力測試,按照以上講述的內容操作,應該可以完成大多數情況的壓力測試。
還希望大家多多交流,共同進步。