1. 程式人生 > >VS2010/2012Web負載測試

VS2010/2012Web負載測試

我們 .html report request www 攻擊 alt 計數 外觀

原文地址: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的測試邏輯是這樣的:

  1. send request 到 目標path(拼裝好post/get, querystring, form field)
  2. get response
  3. 根據驗證規則,開始驗證

添加負載測試:

技術分享

實現負載測試:

測試組合:"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負載測試