JMeter - 教你如何壓力測試 API
這篇文章紀錄如何透過 JMeter 來測試 API。如果不知道 JMeter 是什麼及不知道怎麼安裝的話,請點擊這裡
JMeter 壓力測試 API 流程
建立測試計畫
基本上當你打開 JMeter 後,預設就會有一個新的測試計畫。測試計畫基本上就是一個大集合,裡面可以包含你要做的事情,以及根據這個測試計畫可以產生一些效能報告。
建立執行緒群組
執行緒群組可以由多個 Thread 組成,也就是說建立執行緒群組後,底下可以建立多個 HTTP 請求,每一個請求會各開一個 Thread 去執行。
有兩個設定可以注意:
-
執行緒數量
這個意思是如果待會我們新增一個 HTTP Request,可以設定這個 Request 由多少 Thread 去執行,也就是會發出 Request 幾次。
-
啟動延遲 (秒)
這個意思是每個 Thread 執行是否要有延遲,設定一秒代表每個 Thread 之間會間隔一秒在發出,如果設定 0 秒代表同時發出。
新增 HTTP 要求
主要要設定的東西如下:
-
協定
也就是設定 http 或 https
-
主機名稱或 IP
也就是你的 API 網域
-
端口號碼
你的 API 聆聽端口,可設可不設
-
方法
也就是 HTTP METHOD,如 GET、POST 等等
-
路徑
也就是在你的 API 網域下的路徑
假設我有一個 localhost 下路徑為 /users 的 API,設定就如下。
因為是 POST,所以要設定 Request Body,可以如下設定:
新增檢視結果樹
這個是當運行測試計畫後,會在這個產生每個 HTTP 要求的結果如何。
例如,按下上面的綠色按鈕就會開始執行:
可以看到取樣結果,就可以看到回傳的 Response code。
在 Response Body 也可以看到回傳的資料。
新增 Summery Report
這個是另外一個 report,比起結果樹,這個看到更多指標,根據這些指標就可以判斷當前的 API 效能如何~
注意的點
- 每個執行緒群組下可以有各自的 report
- 測試計畫可以有總 report,這樣當測試一個計劃的時候,可以看到總 report 的統計
- 每次執行完後,要記得清空 report,這樣才不會跟上次的結果一起出現
範例
像我這樣的話就代表說一個測試計畫裡面有兩個執行緒群組,每個群組當作是不同的 User,其 User 裡面有可能會發出裡面的 HTTP 要求。
這樣執行後,產生的 report,是全部執行緒群組的統計結果~
總結
JMeter 個人認為介面操作很直觀,至少還有中文翻譯 xD,不過有些翻譯怪怪的就是了,而且除了 HTTP 要求之外,其實還有很多其他的可以測試,例如他也可以測試資料庫的效能等等。
當系統要上線前,可以用 JMeter 來模擬每秒多個使用者的時候效能到底好不好~
最後最後!請聽我一言!
如果你還沒有註冊 Like Coin,你可以在文章最下方看到 Like 的按鈕,點下去後即可申請帳號,透過申請帳號後可以幫我的文章按下 Like,而 Like 最多可以點五次,而你不用付出任何一塊錢,就能給我寫這篇文章的最大的回饋!