VS2010/2012Web負載測試
原文地址:http://www.cnblogs.com/aarond/archive/2013/04/18/performance.html
VS自帶的Web負載測試真的很大程度上能和專業的loadrunner媲美(只是Web方面),上個report圖吧(如何實現,請往下拉):
看,能探測一堆的計數器(上面紅色打叉的是代表超過了基線值)、還能跟蹤sql的執行,下面講講如何實現的。
樣板代碼下載
大致過程分成如下:新建測試工程、添加Web性能測試(和實現)、 添加負載測試(和實現,負載測試實際上是不斷的調用Web性能測試)、運行負載測試看結果、調整性能。
新建測試工程:忽略(`(*∩_∩*)′)
添加Web性能測試:
實現Web性能測試(先了解測試對象,需求如下):
我們需要分別給以上情況編寫測試用例,如下:
- User Name不填、Email不填==》頁面不跳轉,並且出現消息User Name cannot be empty.
- User Name填、Email不填 ==》頁面不跳轉,並且出現消息Email cannot be empty.
- User Name不填、Email填 ==》頁面不跳轉,並且出現消息User Name cannot be empty.
- User Name填、Email填 ==》頁面跳轉至Thanks.aspx,並且出現消息Thanks
因此,需要分別給上述4種情況加入測試配置(不是測試代碼,因為這裏都是配置出來的...),如下圖:
上面由於是要模擬form的Submit操作,並且使用的是asp.net webform技術,因此form域比較抓狂(要是用mvc技術就方便多了,在性能測試時記得不要考慮csrf攻擊,或者直接忽略掉),而且不要忘記把Submit按鈕寫進去(value=1)
簡單而言,每一個request的測試邏輯是這樣的:
- send request 到 目標path(拼裝好post/get, querystring, form field)
- get response
- 根據驗證規則,開始驗證
添加負載測試:
實現負載測試:
測試組合:"Register"是第一步中那個Web性能測試的名字,由於目前只有1個Web性能測試,所以前綴是[100%]
瀏覽器組合:工具能夠模擬客戶端瀏覽器類型分布百分比,來模擬實際情況
計數器集:這裏有成堆成堆的計數器,裏面有的是定義了閥門值的(有的沒有定義),定義的閥門值分成2種:Warm和Alert,比如:CPU有個計數器叫:% Processor Time,這個計數器要求盡量低點,它有如下設置:
發出警報:true代表超出後會在最終的report中以圖表的形式出現,比如本篇的第二張圖中的那一連串的cpu處理時間。
大家一看就明白意思。
運行設置1 的屬性窗口:
SQL跟蹤:用來跟蹤本地/遠程數據庫的sql執行情況(比如能跟蹤到最耗時間的sql腳本找出來,這樣就能夠優化sql了)
采樣速率:如字面意思...
運行持續時間:如字面意思...
預熱持續時間:假設設置了5秒的預熱持續時間,則負載測試開始後的5秒內不會進行請求,而是等待狀態,等5秒後進行瘋狂的請求動作
漏了個關鍵參數,如下:
負載測試被設置成了恒定有25個用戶同時進行請求。
運行負載測試:略
調整性能:
要回過頭來看看第一張圖,裏面有 “最慢的5個測試”、“最慢的5個sql操作”,然後就具體情況具體優化了。
樣板代碼下載
本篇只說了負載方面的性能測試(偏外觀的探測行為),其實VS還自帶了一個功能強大的性能分析工具,它能監控內存、C#對象使用量,是偏內部的分析,等以後再說這個工具。
VS2010/2012Web負載測試