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的響應狀態和響應延時情況。具體如下:
WebApi管理和性能測試工具WebApiBenchmarks