介紹一個輕量級性能測試工具 wrk 給後端開發者,它可協助你瞭解 1.為什麼服務掛了?? 2.需不需要 Load Balance?? 3.API 的 QPS 多少?? 等等 …,來看看怎麼作。
環境
- Mac
- Nginx (Debian 9, Google 雲端平台)
- API (.NET Core 3.0, Google 雲端平台)
- SQL Server (Google 雲端平台)
Install
首先安裝 wrk,因為個人是使用 Mac 就透過 Homebrew 來安裝:
|
|
Test
準備好要測試的 API,使用 wrk 進行壓測:
GET http://35.234.53.61/api/lotto649/109000035,它會回傳一段 Json
|
|
-c, –connections:跟伺服器建立並保持的TCP連接數量
-d, –duration :壓測時間
-t, –threads :開啟多少個線程進行壓測
-s, –script :Lua腳本路徑
-H, –header :添加 HTTP header
–latency :列印延遲統計信息
–timeout :timeout
-v, –version :wrk的詳細版本信息
-d, –duration :壓測時間
-t, –threads :開啟多少個線程進行壓測
-s, –script :Lua腳本路徑
-H, –header :添加 HTTP header
–latency :列印延遲統計信息
–timeout :timeout
-v, –version :wrk的詳細版本信息
測試報告:
|
|
報告有幾個重點:
- 平均每秒處理(Requests/sec)
- 平均每秒流量(Transfer/sec)
- 發生錯誤數(Socket errors)
lua
wrk 有提供自定義腳本,可用來客製測試方法和報告。例如需使用 POST 方法測試 API:
post.lua
|
|