使用 West Wind WebSurge 對 ASP.NET Web API 服務進行壓力測試

來源:互聯網
上載者:User

標籤:

West Wind Web Surge (以下簡稱 WebSurge) 不只是用於 ASP.NET Web API 的壓力測試功能,也可以對 ASP.NET MVC, ASP.NET WebForm 或是其他網站應用程式服務進行簡單的壓力測試,而 Load Testing 也僅是 WebSurge 其中的一個功能,WebSurge 也有類似 Telerik Fiddler 的功能,可以針對指定的瀏覽器所發出的 Request 和接收的 Response 進行擷取,有興趣的朋友可以去 WebSurge 的官方網站裡進行瞭解。

不過這一篇文章只針對 Load Testing 這個功能作簡單的說明。?

West Wind WebSurge

http://websurge.west-wind.com/

仔細看看官網首頁的 Features 列表,WebSurge 提供了相當多的功能。

WebSurge 是由大神 Rick Strahl 所開發的,這是一套開源的軟體,雖然是開源軟體但還是有區分授權的,在個人使用的情況下是可以免費使用,基本上個人使用的免費版或 Professional, Org 版本的功能都是一樣的,唯一不同的就是 Org 版本是可以在同一個組織下提供多人使用。

http://websurge.west-wind.com/pricing.aspx

免費版與付費版比較明顯的不同就在於,免費版會不定時出現提醒註冊的聲明。

??

對於 WebSurge 還是不清楚這是個什麼樣的工具以及有提供哪些功能,建議先看官網的功能介紹說明,

http://websurge.west-wind.com/features.aspx

如果還是覺得相當模糊的話,那麼就是看直接作者的操作視頻,長度約 15 分鐘,雖然影片標題是說 Web Load Testing,但在影片裡已經將大部分的功能都操作一遍,所以透過影片就會知道 WebSurge 是在做什麼的啦~

https://www.youtube.com/watch?v=TSfWYcr6q5o

?WebSurge 的下載安裝相當簡單,你可以直接從官網下載,或是自行到 Github 下載最新版本,或者是通過 chocolaty 下命令安裝。

http://websurge.west-wind.com/download.aspx

??

使用

上面是簡短的介紹與說明,雖然作者有提供影片給我們看,但我相信有人還是會略過影片想直接看看這個 WebSurge 到底要怎麼用,這邊以一個簡單的 ASP.NET Web API 服務做示範。

以下有三個提供資料的 Web API 以及所提供的資料內容(以下所用來操作執行 Web API 的 Client 工具是 Postman)

_http://localhost:35346/v1/Customers/{CustomerID}

_http://localhost:35346/v1/Customers/ALL

_http://localhost:35346/v1/Customers/Paging?Start={PageIndex}&Count={PageSize}

??

現在要使用 WebSurge 來執行這三個 Web API,

加入新的 Request

填入 Web API 的串連地址

在下面有兩個 Button,分別為 Save 和 Test,建議先執行 Test 已確認地址是有效,確認有效之後再儲存,

測試與執行結果

依序加入要測試的 Web API 地址

剛才都是一個一個做測試,如果想要一次測試剛才所加入的全部 Web API 服務,可以直接執行上面的「ALL」選項,

執行結果,可以看到全部所有執行的結果,全部執行約執行多少時間、平均已耗用時間、最短已耗用時間、最長已耗用時間,個別 Request 的執行結果也會顯示。

?Load Testing

上面是單次的執行,不論是針對個別的 Request 或是全部的 Request,都是只有執行一次,但如果想要做一段時間裡發出多次 Request 執行的壓力測試時,就可以使用 WebSurge 所提供的功能,

Time 單位是秒,Threads 可以決定開多少線程發出 Request,這邊不建議開太多,因為要考慮執行端環境的硬體(也就是你自己電腦 CPU 記憶體 硬碟 … etc 的等級),設定完之後就可以按下「Start」開始執行測試。

執行的時候會在 Output 裡顯示當下執行的項目,

執行完畢

WebSurge 針對執行結果還有提供統計圖表,有:Requests per Second 與 Time taken per URL

Request per Second

Time taken per URL

??

如果你不想要太規則地發出 Request,而是想要隨機發出 Request,可以先點選某一個 Request 之後,再到 Session Options 裡去對「RandomizeRequrests」由 False 改為 True,

再重新執行 Load Testing,可以看到發出的 Request 就會比較隨機而不是有序(如果你所加入的 Request 並不是很多的話,那麼就比較看不出來),

??

如果希望你所建立的一連串 Request 能夠儲存下來,可以將 Session 給儲存下來,下次重新開啟 WebSurge 就可以再載入 Session 使用。

?

?會找到 WebSurge 還真的是誤打誤撞,原本是剛好看到 Rick Strahl 的這一篇文章「Prettifying a JSON String in .NET」,然後在文章裡看到 WebSurge 的介面,一開始還覺得這個跟 Fiddler 應該沒有什麼不同,但就在看完官網說明以及操作影片之後就發覺到這是個相當不錯的好工具。

我會把 WebSurge 當作開發 Web API 時的簡單壓力測試工具,因為使用與操作上相當簡單,如果再搭配 Visual Studio Ultimate 所內建提供的「效能與診斷」功能,將可以找到系統的瓶頸問題,或者有可以搭配一些不錯的付費診斷與偵查工具,例如 dotTrace, dotMemory, ANTS Performance Profiler or Memory Profiler, JustTrace .NET Memory and Performance Profiler 等。

不過如果要做更詳細的壓力測試,還是建議使用其他功能比較齊全的壓測工具,而 WebSurge 則是用來作為開發階段的壓測工具,畢竟開發人員對於效能與系統的負載還是要有基本的對應做法,在交付一個功能的成品之前,開發人員就要去做到基本的處理,例如驗證、安全性、效能、單元測試等,而不是等到最後要上線之前才去做。

Surge 的意思有大浪、波濤、巨湧的意思,這也是為什麼 WebSurge 的 Logo 上面有海浪標誌的主因,不過實際上應該是取用 SURGE ( Scalable URL Reference Generator ) 的意思。

另外有關 ASP.NET Web API 的壓力測試,可以使用 JMemter 或是 MicroSoft MVP - Bruce Chen 曾經在文章介紹過的 SuperBenchmaker。

KingKong Bruce記事: 免費網站與REST服務壓力測試工具?

相關串連

http://websurge.west-wind.com/

https://github.com/rickstrahl/WestwindWebSurge

http://jpkc.nwpu.edu.cn/yjsgsp/06/news/1.5.htm

West Wind WebSurge - an easy way to Load Test Web Applications - Rick Strahl‘s Web Log

?

原文地址: http://kevintsengtw.blogspot.com/2015/07/west-wind-websurge-aspnet-web-api.html

使用 West Wind WebSurge 對 ASP.NET Web API 服務進行壓力測試

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.