Visual Studio 負載測試筆記

這是之前做負載測試時的隨手筆記... (2010-10-1 更新:補一些操作步驟和貼圖)

0. 準備環境

需要安裝的軟體:
  • Fiddler
  • Visual Studio 2008 Team Test Edition 或 Visual Studio 2010 Ultimate
  • SQL Server 2005/2008 (Express 版也行)
安裝好之後,到 Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ 目錄下找到
loadtestresultsrepository.sql,並執行其中的 SQL 命令。這些 SQL 命令會建立一些用來儲存負載測試結果的資料表。參考HOW TO:使用 SQL 建立結果儲存機制

1. 使用 Fiddler 錄製 Web Test 檔案

開啟 Fiddler,然後用 IE 瀏覽欲測試的網站,把測試的操作流程跑過一遍,再回到 Fiddler 視窗,把所有攔截到的 HTTP sessions 選取起來,從主選單點 File > Export Sessions > Selected Sessions,然後在開啟的對話窗中挑選匯出格式為 Visual Studio Web Test。參考下圖:
當然不見得要用 Fiddler,也可以用 Visual Studio 內建的錄製功能,參考這篇:
How to: Create a New Web Performance Test Using the Web Performance Test Recorder (for Visual Studio 2010)

2. 建立測試專案

接著要建立測試專案、加入負載測試。

建立測試專案:File > New > Project > Test Projects > Test Documents > Test Project,如下圖:

建立好測試專案後,在 Solution Explorer 中把預設建立的 UnitTest1.* 刪除。接著點 Project > Add Existing Item,把上一個步驟的 .webtest 檔案加入。參考下圖:


3. 跑一遍錄製好的 webtest 

有些用到 AJAX 技術或動態 inject JavaScript 指令檔的情形,可能會導致負載測試失敗(因為伺服器上面並沒有實體的 javascript 檔案),因此最好先開啟 webtest,試跑一次,以便從執行結果找出那些失敗的 requests,並將之剔除。參考下圖:


發現錯誤時,到 webtest 檔案裡面找到對應的 request,然後到屬性視窗裡把「Parse Dependent Requests」屬性由 True 改為 False,參考下圖:


儲存 webtest 檔案,然後重跑一遍,直到所有錯誤的 requests 都已修正或剔除,然後才做負載測試。

Note: 依錄製時的機器組態而定,你可能會發現有些額外的 request 要剔除,例如:google、dropbox...等等。

4. 加入負載測試

點 Project > Add Load Test...,接著會開啟一個逐步設定的對話窗:


在每個步驟中,依你的需求來設定負載測試的相關參數。進行到「Test Mix」步驟時,便可加入你剛才錄製的 webtest,如下圖:


接著繼續按下一步,直到全部參數設定完成。

5. 執行測試


一些注意事項
  • Initial User Count 不要設太大。就算你想知道網站能不能讓 500 人同時上線使用,也不要一下子就用 500 人去ㄍ一ㄥ。一來不符合實際運作情形,二來,你的負載測試報告可能會很難看(失敗率很高),同時又無法確定瓶頸在哪個部份。
  • 執行負載測試時,注意實施測試的那台機器的 CPU 和 Memory 使用率。若 CPU 負載經常超過 90%(你可能會聽到主機板風扇突然變得很大聲),或可用的實體記憶體剩不到 10%,那麼負載測試的結果很可能失準,因為瓶頸出在執行測試的機器上(而非受測的伺服器)。
參考資料

Post Comments

技術提供:Blogger.