我有一個用C#/ .NET 3.5編寫的客戶機/服務器應用程序,我想對其進行一些性能測試。我一直在尋找一個通用的框架來幫助我,但沒有多少運氣。我希望能夠管理一組客戶端,並根據一些設置爲他們執行隨機操作。我還想記錄一些與此有關的數據,以幫助我爲我的系統設計非常的粗略閾值,例如我可以支持n用戶每秒執行x動作。用於.NET的通用性能測試框架
我會寫特定的代碼,以我的應用程序來執行任務,例如:
- 登錄/註銷的客戶端。
- 將消息發送到服務器以執行各種操作。
- 記錄來自服務器的確認和其他消息。
- 衡量特定於系統的統計信息。
我希望那麼框架將能夠利用一組參數來描述一個測試場景,例如:在給定時間登錄
- 客戶端的數量。
- 每個客戶端每秒執行一定數量的操作。
然後它會運行場景,管理和跟蹤所有用戶和操作並整理所有數據。 (這是我試圖避免編碼自己的無聊的一點...)理想情況下,它會有一些內置的一般測量,例如,發送消息和接收響應之間的時間,但如果不是,我可以自己編碼。
我不想對我的代碼進行任何分析;我可以隨時附加一個分析器,稍後再運行這些測試。相反,我想對我的系統做出一些粗略的結論,即在休息之前可以拋出多少用戶。 (如果有更好的術語比'性能測試'請讓我知道...壓力測試可能嗎?)
我意識到我沒有給出有關係統的很多細節。它讓我覺得這是一個相當普遍的情況 - 我確信有很多客戶/服務器系統需要人們進行類似的測試。我發現很多基於web的框架可以做類似的事情,但是它們似乎很符合web的要求,並且不會輕易將它們用於基於非HTTP的系統。
任何人都知道可能有幫助嗎?我的搜索還沒有找到任何東西。我應該指出,我在Visual Studio 2008 Professional中面臨着可預見的未來,所以如果2010年可以做到這一點,那麼對我來說就是一個界限。我想它不一定是一個.NET框架,只要我仍然可以很容易地插入我的.NET代碼。
編輯爲了清楚我的應用程序不是一個網站,它是一個Windows Forms客戶端應用程序,它通過自定義協議連接到.NET服務。我可以編寫代碼來執行相關的客戶端操作,我只需要一個框架即可。
你在.Net Profilers上看過這個問題嗎? http://stackoverflow.com/questions/3927/what-are-some-good-net-profilers – TheLukeMcCarthy
我不想做分析,如果我解決了問題,我可以稍後再做。我更關心測量我的系統可以使用的用戶數量。 – MrKWatkins