ASP.NET Web API壓力測試
在《ASP.NET MVC 4網站開發美學》上市之後,曾經有讀者問筆者:「ASP.NET Web API是否真的可以使用在真實的專案上?」答案是肯定可以。ASP.NET Web API並不是一個全新技術,而是一項整合與改良的技術,ASP.NET Web API在HTTP Service就是要提供一個輕量且高效率運作框架。
但要如何證明呢?李錩鈺博士說:「有一分證據,說一分話。」現在為各位提供可視的數據給讀者。
SuperBenchmarker
這是一支Command-line應用程式,讓我們非常簡易即可對網站或HTTP API進行壓力測試。
PM> Install-Package SuperBenchmarker
安裝套件之後,開啟專案目錄下的「\packages\SuperBenchmarker.{version} \lib」即可找到sb.exe主程式。
SuperBenchmarker參數說明
sb.exe -u url [-c concurrency] [-n numberOfRequests] [-m method] [-t template] [-p plugin] [-f file] [-d] [-v] [-k] [-x] [-q] [-h] [-?]
常用的有:
- -u url:你要測試的網站或REST服務URI。
- -n N:N代表要測試的次數。預設 100。
- -c N:N代表同時連線數。預設 1。
-c參數是壓力測試關鍵之一,以筆者的測試經驗,一台主機最大設定值約250以下,正常是設定為200最順。-n是進行多少回測試,數字越大測試越久數據越精確。
sb.exe 範例
以下是一些測試範例:
- sb.exe -u http://google.com
以預設值(-c 1 -n 100)對http://google.com進行請求測試。 - sb.exe -u http://google.com -n 1000 -c 10
以同時10連線進行1000次請求測試。
板主大大請問一下我安裝後啟動有這個錯誤: Unhandled Exception: System.IO.FileNotFoundException: Could not load file or ass
回覆刪除embly 'CommandLine, Version=1.9.71.2, Culture=neutral, PublicKeyToken=de6f01bd32
6f8c32' or one of its dependencies. The system cannot find the file specified.
at SuperBenchmarker.Program.Main(String[] args) , 我使用的OS是win7 , vs為2012版本, .net framework 4.5~ 請問如何解決, 感謝大大。
另外,你的問題我碰過,我也有反應給作者:https://github.com/aliostad/SuperBenchmarker/issues/8
刪除後來重灌電腦後沒有再發生,我也就沒有追下去了。
對了,那時候我解決的辦法是指定下載指定版本「-version 0.1.2.0」,而不是0.1.5.0版。0.1.2.0在所有電腦都正常。
刪除大大, 下載 -version 0.1.2.0 版本後確定可行, 感謝大大的回覆:)
刪除NuGet上的版本已經沒有再更新,請至 https://github.com/aliostad/SuperBenchmarker/tree/master/download 下載最新版本試試看。
回覆刪除感謝大大的回覆, 我再試看看,謝謝:)
回覆刪除文章尾端有一些更詳細的用法
回覆刪除http://reshuffles11.rssing.com/chan-6962678/all_p3.html