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 最多可以點五次,而你不用付出任何一塊錢,就能給我寫這篇文章的最大的回饋!