WebApi管理和效能測試工具WebApiBenchmarks
說到WebApi管理和測試工具其實已經非常多的了,Postman、Swagger等在管理和維護上都非常出色;在效能測試方面也有不少的工具如:wrk,bombardier,http_load和ab等等。不過這些工具都具有單一性,管理和維護好的在效能測試上比較低效,對於效能測試好的在管理和維護上不理想!以下主要介紹一款基於 dotnet core
開發的 WebApiBenchmarks
工具,這個工具可以對webapi進行管理和維護並提供高效的效能測試能力,接下來來先預覽一下這個小工具再進行詳細介紹。
功能
- 支援簡單的服務管理,可以隨時對不同服務的API進行單元和壓力測試
- 支援分類的方式管理測試用例,用例支援定義GET,POST,DELETE和PUT等操作的定義
- 提供高效的效能測試支援,在4核的PC上可以達到20W rps的測試效能;
- 支援多API同時壓測,並顯示相關效能指標資料進行參考和對比
部署
工具可以執行在安裝有.net core 2.1或更高版本的Linux和Windows下,工具以http服務的方式啟動,通過瀏覽器訪問進行相關操作。 下載工具: https://github.com/IKende/WebApiBenchmark
執行
- linux
dotnet BeetleX.WebApiBenchmarks.dll
or
./webapibenchmark.sh
- windows
dotnet BeetleX.WebApiBenchmarks.dll
or
webapibenchmark.bat
埠衝突
工具預設使用9090埠,如果埠被佔則無法啟用服務,這個時候需要修改 HttpConfig.json
檔案中的埠配置
"Host": "",
"Port": 9090,
"SSL": false,
開啟工具
工具執行後可以瀏覽器訪問相關地址開啟工具,本機訪問 http://localhost:9090/
其他電腦訪問 http://ipaddress:9090/
新增服務地址
工具可以維護多個服務地址,所有的測試都必須選擇對應的地址才能執行測試。
地址必須是一個可用的http服務Url
新增測試用例
工具支援GET,POST,DELETE和PUT請求定義,可以根據實際情況定義QueryString和Header值,並針對POST和PUT設定相應的Body內容。具體操作介面如下:
在編輯介面下面有個測試按鈕,可以即刻測試API的呼叫情況;選擇相應的服務地址點選測試即可在下方看到完整的返回結果:
批量單元測試
工具支援批量執行測試用例,並在測試用例上顯示具體的執行結果;只要選擇需要測試的用例點選單元測試即可:
效能測試
效能測試是元件提供的最重要功能,為了確保效能測試的效率;元件重寫了一個輕量化的HttpClient,通過這個HttpClient即使在低配置的電腦上也可以進行高效率的壓力測試。測試前需要選擇相應的服務地址和單元測試用例
測試引數設定
工具提供兩種測試方式,分別是基於時間和總請求資料,選擇對應的測試方式設定相應的測試數值即可;使用者數是指同時請求的數量,工具限制設定最大2000,設定完成後點選開始按鈕即可進行測試
測試結果
工具會實時反映測試的情況,主要包括HTTP響應狀態和響應延時分佈情況,如果同時壓測多個API,則明細裡會實時顯示每個API的響應狀態和響應延時情況。具體如下: