壓力測試命令行工具SuperBenchmarker
SuperBenchmarker 是ㄧ個開源的類似於Apache ab的壓力測試命令行工具。可以在 .NET 4.52+ 或者 .NET Core 2.0+ 平台上運行。
可支持Get、Post、Put、Delete這些調用方式,調用時能指定Concurrent user、Request數、Header template…等。
可以從Github、Chocolatey這兩種方式獲得。
Github用戶可在download目錄內取得編譯好的程序主文件
Chocolatey使用者可輸入下列命令進行下載
cinst SuperBenchmarker
程序的作者是建議用Chocolatey去獲得程序主文件,因為放置的程序主文件已經被作者用ILMerge將依賴的組件合並,獲得后就可直接使用。
程序的使用方式可直接在命令行下輸入sb查看,里面會有程序的使用方式、參數、及簡易的使用范例
其中比較重要的參數大概有下列幾個
-u 可用來指定要壓測的網站或是API
-n 可用來指定要壓的Request數量
-c 可用來指定Concurrent Request數量
-m 可用來指定要使用的HTTP Method
-h 可用來指定要顯示HTTP Header
-q 可用來指定要顯示Cookie
所以我們要發送1000個Request去測試騰訊網的話 可以輸入命令
sb -u https://www.qq.com -n 1000
要發送1000個Request, 且同時間可能有10個Concurrent Request去測試騰訊網的話 可以輸入命令
sb -u https://www.qq.com -n 1000 -c 10
要在發送命令后顯示Header的話, 可帶入參數-h
sb -u https://www.qq.com -n 1000 -c 10 -h
要在發送命令后顯示Cookie, 可帶入參數-q
sb -u https://www.qq.com -n 1000 -c 10 -h -q
命令運行的最后我們都會看到類似下面這樣的畫面:
這邊有簡易的測試統計,可以看出每秒可處理多少的Request、最大的處理時間、最小的處理時間、平均的處理時間、以及壓了這么多次的API,依比例分大概在哪個范圍。
同時還有網頁來展現測試統計結果
這些數值有助我們評估網站或是API的性能與負載量。 除了看這些數據外,這邊建議也可以在壓的時候看一下Server上的CPU Loading,磁盤IO,以及內存的使用狀況,甚至可以用性能監視器拉些數值來看。
相關鏈接