VS2010中的自動化測試——Web性能測試
一、概述
網站的性能由很多不同的因素決定,比如:網絡速度、不同的瀏覽器或者在同一時刻的用戶數量、硬件處理能力等因素,都會影響到網站的性能和響應時間。Web性能測試就是幫助開發者在開發工程中就能確認并盡力修復這些問題。
下面討論幾種主要的性能測試:
● Validation and verification test: 這個測試用來幫助我們檢驗輸入值和是否能在期望的入口安全登錄。比如:一個字段要求你輸入一個Email地址,那么你必須正確輸入才能提交頁面。
● Web page usability test: 它相當于是在生產環境中,通過模擬用戶行為來查看網站內容是否完整。比如:每個鏈接是否正確或者頁面上的信息是否顯示正確等。
● Security Testing: 它幫助我們檢驗不同權限的用戶是否能得到相應的內容,還有對本地或者服務器上其它資源文件的訪問權限。
● Performance Testing: 幫助我們驗證在特地環境下頁面響應的時間,它包括壓力測試和負載測試。
● Testing web page compatibility: 這個就是驗證網站在不同瀏覽器上的兼容性。
● Testing a web application using different networks: 這個測試取決于我們的最終用戶是處在什么樣的網絡環境中。
對于Web性能測試,還有很多其它相關的測試,比如不同的操作系統、不同的數據庫的影響等等都與性能有一定的關系。
上面我所說的性能測試,在VS2010中提供了相應的工具,為我們進行測試,下面我們就來創建一個簡單的Web性能測試。
二、創建Web性能測試
在我們創建Web性能測試之前先創建一個簡單的網站,包括一個添加用戶數據和顯示用戶數據的網頁,數據表設計如下:
網站用戶界面如下:
這個Web應用程序可以部署在Web服務器上進行測試,也可以直接在ASP.NET Development Server上進行測試,當然,如果在開發環境上測試,需要保持Development Server運行著。
現在開始來創建一個Web性能測試,可以直接點擊VS工具欄上Test->New Test…,然后選擇如圖所示文件:
點擊OK后,會提示你新建一個測試工程,并給它命名,然后點擊Create。這時會彈出一個IE窗口如下所示:
左側是一個Web Test Recorder(有可能在你創建測試文件后,彈出IE時沒有這個東西出現,你可以通過IE的工具->管理加載項選項中將Web Test Recorder啟用),它主要用來記錄瀏覽測試網頁時所有的操作,它會將所有的request和response記錄下來,它還可以幫我們在不同的情況下找出我們期望的結果。
現在我們輸入剛剛創建的那個網頁的地址,然后我們輸入一些信息進行提交:
點擊Insert之后,我們會看到Recorder幫我們捕捉到一些信息:
完成所有操作后,點擊Recorder面板中的Stop按鈕,我們就可以自動跳轉回VS中,并顯示出之前記錄的所有請求信息。 至此,一個簡單的Web性能測試就建好了。可以點擊工具欄左上角的運行測試一下。上圖顯示的是一個Web性能測試的編輯窗口,窗口中,樹的每一個層級都有不同的屬性可以進行設置。除此之外,編輯窗口還有一個工具欄,能為測試用例提供不同的功能以及數據源等。 下面我來詳細說一下性能測試編輯窗口中的各個功能及操作。 上次說到我們編輯窗口中的樹結構,每一層都會有不同的屬性設置。 ● Root Level:可以說是一條Web性能測試的入口點,比如:可以在此設置用戶驗證、代理或者為這條測試添加一些描述信息等; ● Request Level:在Web性能測試中記錄下來的每一條單獨的請求,可以在此設置用戶思考時間(think time)、請求方式(GET或者POST)或者設置是否緩存等; ● Request Parameter Level: 這里是每次請求的參數設置,可以在此設置是否進行Url編碼、值還有名稱。 這里所有的屬性設置你都可以在屬性視窗中看到說明,如果還有不懂的,可以查看MSDN進行幫助,所有的屬性都在Microsoft.VisualStudio.TestTools.WebTesting這個命名空間下。 三、提取規則(Extraction Rules) 在VS中我們可以用提取規則的功能把網站中的一些有用的數據提取出來。 通常情況下,幾乎所有的網站,它們頁面之間總會有一些依賴關系,比如說你的下一個請求依賴你上一次請求響應中得到的一些數據。所以提取規則這個功能就是可以讓你從響應的數據中提取到你需要的數據,并保存下來,用于你下一次的請求或者你之后需要的時候。它保存下來的數據在一個上下文參數中,你可以在全局環境中使用它。 在VS2010中已經為我們內建了幾種提取規則,如圖: 關于內建提取規則說明,可參見這里。如果內建的這些提取規則還不能滿足你的需要,也可以自定義自己的提取規則。 這里我借百度(偷個懶^_^)做個Demo,看下怎么使用提取規則。 根據上篇內容,首先利用Recorder來打開百度,然后隨便搜索一個東西(我百度的James),最后點擊Stop,會在VS中生成如下數據: 現在我們在第一請求節點上右鍵添加一個提取規則,因為我是要提取第一次請求響應回來的中的值,如下所示: 提取規則設置如下: