使用JMeter進行壓力測試

追風人聊Java發表於2021-09-06

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進行壓力測試,按照以上講述的內容操作,應該可以完成大多數情況的壓力測試。

還希望大家多多交流,共同進步。

 

相關文章