本文為電子工業出版社推出的《構築敏捷的開發團隊:微軟Visual Studio 2010實戰兵法》圖書第八章連載之二十三。
負載測試(Load Testing)是確定在各種工作負載下系統的性能,目標是測試當負載逐漸增加時,系統組成部分的相應輸出項,例如通過量、響應時間、CPU負載、內存使用等來決定系統的性能。負載測試是一個分析軟體應用程式和支撐架構、模擬真實環境的使用,從而確定能夠接收的性能過程。壓力測試(Stress Testing)是通過確定一個系統的瓶頸或者不能接收的性能點,來獲得系統能提供的最大服務級別的測試。
Visual Studio Team System 2010給我們提供了一個創建並運行Load tests的工具。Load Test的基本目標就是模擬許多用戶同時訪問伺服器。當從一個Load tests裡面添加Web tests/Unit tests後,會模擬多個用戶同時連接到伺服器上,並向伺服器發送多個HTTP請求。可以設置Load tests的屬性,並廣泛地運用到你的Web tests中。
應用&實踐:使用Visual Studio 2010創建一個負載測試(Load Test)
1.創建一個負載測試
Visual Studio 2010負載試驗提供了每個負載測試的場景設置,使您可在整個負載範圍內進行場景測試的控制,因此,新的選項允許更容易地創建一個負載測試,精確模型的負載可以在伺服器下執行模擬測試。
(1)設置負載測試的名稱和思考時間的配置
首先,使用負載測試嚮導創(Load Test Wizard)建一個新的負載測試。打開資源解決方案瀏覽器(Solution Explorer),右鍵菜單中選「Add」,單擊「Load Test..」,在彈出安裝嚮導中,單擊「Next」鍵,彈出場景嚮導界面。場景為配置個性化測試提供了靈活性,它可以模擬複雜真實的工作負載。輸入場景名字為「TestScenario」,選擇「user normal distribution centered on recorded think times(正態分布用戶為中心的思考時間記錄)」,設置思考時間為2秒(思考時間根據實際需要而設置),然後單擊「Next」,如圖1所示。
圖1 指定負載模式
在完成嚮導後,也可以返回並編輯負載測試,並更改的設置,在嚮導中選擇適用的配置選項。
負載測試包含一個或多個場景,這是用來模擬如何與一組用戶的伺服器應用程式進行交互。一個人的情況涉及負載模式,測試組合,瀏覽器結構,網絡結構。這些設置的每一個對應於網頁中的負載測試嚮導。
(2)測試組合類
Load pattern屬性指定了在一個load test過程中如何調整模擬的用戶數。選擇Constant Load,設置用戶數為25,然後單擊「Next」,如圖2所示。
圖2 選擇組合模式
在該模式中包括基於總測試數、基於虛擬用戶數、基於用戶節奏,不同的建模方式其分配的百分比不同。負載模式可以指定新用戶的增加活躍的虛擬用戶的數量。再負載測試多個負載模式的能力,來實現測試目標。我們必須指定負載測試中每個場景的負載模式。
(3)測試組合
將所有的webtest組合在一起,(Test mix model)模擬最真實用戶作業系統的環境。我們可以有多個工作流,這樣就更加貼近終端用戶交互你應用程式的情況。
①選擇「Based on the total number of tests」,然後單擊「Next」,如圖3所示。
圖3 測試組合模式(基於測試總數)
其中各組合模式的介紹參考圖3中的選中部分,該說明有對不同的模型進行介紹。
②如果選擇「Based on sequential test order」,然後選擇「Next」,嚮導頁面將添加到順序的測試。此項是新的「Test Mix」基於順序測試項(如圖4(1)所示),每個虛擬用戶將通過順序測試和語序對其設置,此選項可在新的負載測試和新的場景中使用。如圖4(2)所示。
圖4(1) 測試組合模式(基於順序測試順序)
圖4(2) 基於順序測試場景
如圖2所示,圖表文字說明的行為,並顯示與25個虛擬用戶和兩個場景的測試例子。無需輸入百分比或為其他測試混合類型協調信息。如果創建了這個測試組合類型的負載測試方案,可以隨後使用負載測試編輯器的混合編輯器更改測試混合型,或添加、刪除或更改測試順序嚮導。
(4)添加組合
Test mix指定了虛擬用戶在一個load test場景中運行一個給定測試的可能性。能讓你更加真實地模擬負載。我們單擊「Add」添加一個Web test 或 unit test(在這裡我們可以增加一個Webtest測試),選擇一個測試項,然後單擊「OK」。如圖5所示。
圖5 添加測試組合併進行方案分配
在圖5中,可以對組合的測試項目進行百分比分配,當對其中某個測試項目加鎖後,更改其他項目的百分比,該測試項目的百分比不能再進行更改,但是可以對鎖定的測試進行獨立修改。
提示:Web性能測試(Web Performance Test)
VS 2010版本中,微軟把Web Test改為Web Performance Test,可以在VS 2010解決方案資源管理器,打開一個測試項目,右鍵菜單|Add|Web Performance Test或者在VS 2010 IDE菜單Test|New Tes|Web Performance Test進行創建。創建時IE會自動彈出,當輸入被測試Webz地址時,會自動錄製腳本並可以手動生成C#或者VB腳本代碼。然後加入到Load Test中進行集成測試中一部分,與Load Test 測試方式相似,在這裡不再贅述。
「Web 測試」也稱為聲明性 Web 測試,它由一系列 HTTP 請求組成。Web 測試通過發出 HTTP 請求在協議層工作。Web 測試不運行 JavaScript。但是,可以在運行時通過使用 Web 測試插件、Web 測試請求插件、提取規則或編碼的 Web 測試來模擬 JavaScript 操作。 它用於測試 Web 應用程式的功能以及在負載下測試 Web 應用程式。Web 測試可用於性能測試和壓力測試。 通過在瀏覽器會話中記錄活動,可以創建 Web 測試。還可以使用 Web 測試編輯器手動構建 Web 測試。 要測試 Web 應用程式,請通過記錄在 Web 應用程式中導航的測試來創建 Web 測試。
(5)添加網絡組合
模擬在不同的網絡環境下訪問系統。Network mix指定了虛擬用戶運行一個網絡profile的可能性。選擇網絡類型「LAN」,然後單擊「Next」按鈕,如圖6所示。
圖6 添加網絡組合
可以添加多個網絡組合,並可以對其網絡類型進行百分比分配。當鎖定其中某個網絡類型的百分比後,修改其他的網絡類型,該網絡類型的百分比不發生變化,但是可以獨立修改該網絡類型的百分比。
(6)瀏覽器組合
模擬不同的瀏覽器訪問Web系統。Browser mix指定了虛擬用戶運行多種瀏覽器綜合測試的可能性。選擇網絡類型「Internet Explorer 8.0」,然後單擊「Next」按鈕,如圖7所示。
圖7 添加瀏覽器組合
可以添加多個瀏覽器的組合。也可以對其瀏覽器進行百分比分配,當鎖定其中某個瀏覽器的百分比後,修改其他的瀏覽器,該瀏覽器的百分比不發生變化,但是可以獨立修改該瀏覽器的百分比。
(7)計數器設置(Counter sets)
添加被監控的伺服器的計算機名字或者IP位址,以監控其具體的計數器。Counter sets是一系列系統性能計數器,在運行一個load test過程中對性能監視很有用,添加計算機名「Local Computer」,選擇「Next」,如圖8所示。
圖8 添加計數設置
添加計算機。輸入需要被監控計算機的名字或IP位址,並選擇需要監控的參數。選中參數後,該參數會在右側顯示。
(8)運行設置
模擬虛擬用戶在系統中運行的時間和採樣速率等。The run settings確定了測試的時間長度、warm-up期限、採樣率、連接模型 (僅用於Web tests)、結果存儲的類型、有效等級和SQL跟蹤。我們選擇測試時間長度為5分鐘,然後單擊 「Finish」按鈕,創建了一個名為「LoadTest1」的負載測試。如圖9所示。查看測試結果,如圖10所示。
圖9 運行設置
圖10 查看結果顯示
[上一節] 在VS 2010中啟用單元測試覆蓋率(enable code coverage)
[下一節] 高負載測試(Test Load Agent)