逐步解說:建立和執行包含 Web 效能測試的負載測試

在這個逐步解說中,您會建立包含 Web 效能測試的負載測試。

本逐步解說會引導您建立及執行負載測試逐步導引您使用 Visual Studio Ultimate。 負載測試是 Web 效能測試和單元測試的容器。 負載測試是利用 [新增負載測試精靈] 所建立。 如需負載測試的詳細資訊,請參閱建立和編輯負載測試。 如需 Web 效能測試的詳細資訊,請參閱建立和編輯 Web 效能測試。 如需單元測試的詳細資訊,請參閱使用單元測試驗證程式碼

注意事項注意事項

雖然負載測試可以同時包含 Web 效能測試和單元測試,但是這個逐步解說的重點會放在包含 Web 效能測試的負載測試。若要了解如何將單元測試加入至負載測試,請參閱逐步解說:建立和執行包含單元測試的負載測試

負載測試會公開許多執行階段屬性,您可以修改這些屬性,以產生需要的負載模擬。 在這個逐步解說中,則會使用 [新增負載測試精靈],將 Web 效能測試加入至負載測試。

這個逐步解說需要現有的 Web 效能測試,以便加入至負載測試。

在這個逐步解說中,您將完成下列工作:

  • 建立負載測試。

  • 將 Web 效能測試加入至負載測試。

  • 變更部分負載測試設定。

  • 執行負載測試。

必要條件

開啟在先前逐步解說中建立的 ColorWebApp 方案

開啟方案

修改 Red.aspx.cs ASP.NET 網頁中的程式碼,以示範臨界值違規和錯誤

若要修改 Red.aspx.cs 程式碼,以示範臨界值違規和錯誤

  1. 在 [方案總管] 中,展開 ColorWebApp ASP.NET Web 應用程式專案資料夾,然後展開 Red.aspx 節點。

  2. 以滑鼠右鍵按一下 Red.aspx.cs 檔案,然後選取 [檢視程式碼]。

  3. 在 [程式碼編輯器] 中,將下列以粗體顯示的程式碼加入至 Page_Load 方法:

    protected void Page_Load(object sender, EventArgs e)
            {
                Random rnd = new Random();
                int result = rnd.Next(5000);
                    //To emmulate various page times up to 5 seconds.
                    Thread.Sleep(result); 
                if (result < 500)
                    Response.Redirect("NOWHERE");  //10% chance to cause an HTTP 404 error.
            }
    

    加入此程式碼,以便於在 [負載測試分析器] 中檢視模擬臨界值違規和錯誤。 稍後您將在本逐步解說中檢視這些違規。

使用新增負載測試精靈建立負載測試

若要啟動新增負載測試精靈

  1. 在 [方案總管] 中,以滑鼠右鍵按一下[ColorWebAppTest Web性能]並且負載測試專案節點

  2. 選取 [新增] 然後選取 [負載測試]。

    [新增負載測試精靈] 隨即啟動。

    [新增負載測試精靈] 的 [歡迎使用建立新負載測試精靈] 頁面是第一個出現的頁面。

  3. 請選擇 [下一步]。

若要編輯負載測試情節的設定

  1. [編輯負載測試情節的設定] 頁面隨即顯示。

  2. 在 [輸入負載測試情節的名稱] 底下的文字方塊中,輸入「情節基本壓力」。

    「情節」(scenario) 是一個群組機制。 它是由一組測試和在負載之下執行這些測試的屬性所構成。

  3. 將 [時間特性考慮] 設為 [使用常態分佈,其中心點為記錄的考慮時間]。

    考慮時間代表使用者從 Web 網頁移到下一頁之前的暫停時間。

    如需詳細資訊,請參閱HOW TO:在 Web 效能測試中設定考慮時間以模擬人類暫停行為

  4. 請選擇 [下一步]。

若要編輯測試情節的負載模式設定

  1. [編輯負載測試情節的負載模式設定] 頁面隨即顯示。

  2. 選取 [常數負載]。

    負載模式屬性會指定在負載測試期間,如何調整模擬的使用者負載。

    如需詳細資訊,請參閱編輯負載模式以模型化虛擬使用者活動

  3. 請選擇 [下一步]。

若要選取情節的測試混合模型

  1. [選取負載測試的測試混合模型] 頁面隨即顯示。

  2. 在 [如何將測試混合模組化] 底下,選取 [按總測試數]。

    測試混合模型會指定在負載測試情節中,執行指定之測試的虛擬使用者的可能性。

    如需詳細資訊,請參閱編輯測試混合模型以指定虛擬使用者執行測試的可能性

  3. 請選擇 [下一步]。

若要將 ColorWebTest.webtest Web 效能測試加入至情節

  1. [將測試加入至負載測試情節,並且編輯測試混合] 頁面隨即顯示。

  2. 選取 [新增] 選取測試。

    [加入測試] 對話方塊隨即出現。

  3. 在 [可用的測試] 窗格中選取 ColorWebTest Web 效能測試,然後按一下箭號,將測試加入至 [選取的測試] 窗格。

  4. 選擇 [確定]。

    就可以看到測試混合。 如果負載測試包含多個 Web 效能和單元測試,可以使用滑桿調整測試分佈。

    情節的測試混合是各種不同因素的組合,例如情節內含的測試選取範圍,以及這些測試在情節內的分佈方式。 測試混合必須反映特定情節中的測試目的。

    如需詳細資訊,請參閱編輯測試混合模型以指定虛擬使用者執行測試的可能性

  5. 請選擇 [下一步]。

若要選取測試情節的網路混合

  1. [將網路類型加入至負載測試情節,並且編輯網路混合] 頁面隨即顯示。

  2. 將預設值 LAN 保持在 100%。

    「網路混合」(Network Mix) 提供在負載測試情節中更真實的模擬負載方法。

    若要指定要在負載測試情節中模擬的網路類型,可以在 [網路類型] 底下按一下每一列旁的下拉箭號。 如果設定網路混合使用多個網路類型,可以使用滑桿指定網路類型分佈。

    如需詳細資訊,請參閱在負載測試情節中指定虛擬網路類型

  3. 請選擇 [下一步]。

若要選取測試情節的瀏覽器混合

  1. [在負載測試情節加入瀏覽器類型,並且編輯瀏覽器混合] 頁面隨即顯示。

  2. 保留預設值 Internet Explorer 7.0,或指定目前使用的瀏覽器類型。

    若要指定要在負載測試情節中用來測試 Web 應用程式的瀏覽器類型,可以在 [瀏覽器類型] 底下按一下每一列旁的下拉箭號。 如果您設定瀏覽器混合使用多個瀏覽器類型,可以使用滑桿指定瀏覽器類型分佈。

    如需詳細資訊,請參閱編輯測試混合以指定負載測試情節中的 Web 瀏覽器類型

  3. 請選擇 [下一步]。

若要指定要在負載測試執行期間以計數器集合監視的電腦

  1. [指定要在負載測試回合期間,使用計數器集合監視的電腦] 頁面隨即顯示。

  2. 保留預設值。

    計數器集合是在您指定的電腦上收集而來的。 計數器集合與執行負載測試期間所使用之電腦間的關聯為「計數器集合對應」(Counter Set Map)。 例如,您所測試的 Web 伺服器可能具有 ASP.NET、IIS 和 .NET 應用程式計數器集合對應。

    點選 [加入電腦],並輸入伺服器名稱,此伺服器裝載先前做為目標之非實際執行的網站,即可選取測試回合期間要監視的電腦。 加入主機電腦名稱能讓您收集對負載測試相當重要的效能資訊。

    注意事項注意事項

    在您監視的每一個伺服器上,您都必須有足夠的使用者權限,才能執行效能監視,否則便會產生錯誤。

    您可以為裝載此網站 SQL 資料庫的電腦另外新增一個項目。 如果選擇不加入任何電腦,則只有本機負載計數器會加到測試中。

    然後您可以選取要監視的計數器集合。 此時會顯示一組預先定義的計數器集合,它可以在負載測試中加入特定的效能監視器,包括應用程式、ASP.NET、.NET 應用程式、IIS 和 SQL。

    如需詳細資訊,請參閱在負載測試中指定電腦的計數器集合和臨界值規則逐步解說:在負載測試中使用測試控制器和測試代理程式

  3. 請選擇 [下一步]。

若要編輯負載測試的回合設定

  1. [檢閱並編輯負載測試的回合設定] 頁面隨即顯示。

  2. 選取 [負載測試持續期間],然後將 [執行持續期間] 設為 2 分鐘,以便替負載測試進行「煙霧測試」(Smoke Test)。

    建置 Web 效能測試和負載測試時,最好先執行簡短的輕量負載測試,驗證所有項目均已正確設定並如預期般執行。 這個程序稱為「煙霧測試」(Smoke Testing)。

    「回合設定」(Run Setting) 是一組能影響整個負載測試的屬性。 回合設定決定了測試的長度、熱身期間、所回報的錯誤詳細資料數上限、取樣率、描述、是否儲存負載測試失敗的記錄檔,以及驗證層級。 回合設定應該反映負載測試的目標。

    如需詳細資訊,請參閱設定負載測試回合設定

  3. 選取 [完成]。 您的負載測試會在 [負載測試編輯器] 開啟。

使用負載測試編輯器將臨界值規則加入至負載測試

若要將臨界值規則加入至負載測試

  1. 在 [計數器集合] 節點中,展開 [LoadTest] 計數器集合節點,然後展開 [計數器分類] 資料夾節點。

  2. 展開 [LoadTestPage] 計數器分類節點,然後展開 [計數器] 資料夾節點。

  3. 以滑鼠右鍵按一下 [平均頁面時間] 計數器節點,然後選取 [加入臨界值規則]。

  4. [加入臨界值規則] 對話方塊隨即出現。

  5. 在 [選取規則] 底下,將 [比較常數] 規則保持選取狀態。

  6. 在 [所選規則的屬性] 底下,將 [選項] 分類中的 [超出時提醒] 設為 True

  7. 在 [臨界值] 分類底下,將 [警告臨界值] 設為 3,並將 [關鍵臨界值] 設為 4。

  8. 選擇 [確定]。

  9. [Avg Page Time] 計數器底下就會加入具有新規則的 [臨界值規則] 資料夾。

執行負載測試,並在圖形上啟用臨界值違規

建立好負載測試之後,請執行此測試,以檢視網站對負載模擬的反應。 當負載測試正在執行時,您可以在 [負載測試分析器] 視窗中啟動一些初始分析。

若要執行負載測試

  1. 負載測試在 [負載測試編輯器] 中開啟時,請點選綠色的 [執行] 按鈕。 負載測試就會開始在 [負載測試分析器] 的 [圖形] 檢視中執行。

  2. 當測試正在執行時,請點選工具列上的 [顯示圖例] 下拉式清單按鈕,然後選取 [在圖形上顯示臨界值違規]。

    如果您的測試模擬超出任何臨界值,樹狀控制項節點便會出現圖示,指出發生臨界值違規。 錯誤上面會有紅色圓形,警告則會有黃色三角形。

  3. 當您看到臨界值違規圖示出現在 [圖形] 檢視的 [頁面回應時間] 圖形上時,請點選 [負載測試分析器] 工具列上的 [加入分析注意事項]。

    [分析] 對話方塊隨即顯示。

  4. 在 [描述] 文字方塊中輸入「臨界值違規」。

  5. 在 [分析] 文字方塊中,輸入「Red.aspx.cs 檔案中的可疑程式碼缺失」。

    註解會隨著負載測試結果永久儲存。

  6. 當負載測試完成執行之後,在 [負載測試分析器] 的 [摘要] 檢視中,負載測試結果會出現在顯示 LoadTest1[time] 的另一個索引標籤中。

分析負載測試

在負載測試完成後,可繼續進一步分析負載測試結果。 如需詳細資訊,請參閱負載測試分析器概觀

若要使用負載測試分析器分析負載測試

  1. 在 [摘要] 檢視中,向下捲動至標示 [錯誤] 的資料表,然後點選 [Http 錯誤] 或 [驗證規則錯誤]。

  2. [負載測試分析器] 會變更為 [資料表] 檢視,其中顯示 [錯誤] 資料表而且已選取您所點選的規則類型。

  3. 在 [驗證規則錯誤] 規則類型資料列中,注意在 [子類型] 錯誤資料行底下列出的 ValidateResponseurl。 這個臨界值違規是由您加入至 Red.aspx.cs 檔案中的下列以粗體顯示的程式碼所導致,而此程式碼會隨機引發模擬頁面延遲長達五秒:

    protected void Page_Load(object sender, EventArgs e)
            {
                Random rnd = new Random();
                int result = rnd.Next(5000);
                    //To emmulate various page times up to 5 seconds.
                    Thread.Sleep(result); 
                if (result < 500)
                    Response.Redirect("NOWHERE");  //10% chance to cause an HTTP 404 error.
            }
    

    這個模擬延遲可能違反您稍早在此逐步解說中指定的 [警告臨界值] 3 和 [關鍵臨界值] 4。 警告圖示會顯示為有驚嘆號的黃色三角形,而嚴重違規圖示會顯示為有 X 的紅色圓形。

  4. 在 [Http 錯誤] 錯誤類型資料列中,注意在 [子類型] 錯誤資料行底下列出的 404 - NotFound。 這是由您加入至 Red.aspx.cs 檔案中的下列以粗體顯示的程式碼所導致。 此程式碼會有 10% 機率重新導向至不存在的頁面,因而造成錯誤:

    protected void Page_Load(object sender, EventArgs e)
            {
                Random rnd = new Random();
                int result = rnd.Next(5000);
                    //To emmulate various page times up to 5 seconds.
                    Thread.Sleep(result); 
                if (result < 500)
                    Response.Redirect("NOWHERE");  //10% chance to cause an HTTP 404 error.
            }
    
  5. 在 [計數器] 資料行底下,點選 [驗證規則錯誤] 規則類型數字的連結。

    [負載測試錯誤] 對話方塊隨即顯示。

  6. 向右捲動,然後點選 [詳細資料] 資料行底下的 [TestLog] 連結。

  7. [Web 效能測試結果檢視器] 隨即開啟,並在另一個索引標籤中顯示與錯誤相關聯的 ColorWebTest。

  8. 點選 [負載測試錯誤] 對話方塊上的 [關閉]。

  9. 選取 LoadTest[time] 索引標籤,返回顯示負載測試結果的 [負載測試分析器]。

  10. 在計數器面板中,請注意 [情節基本壓力] 節點有其中一個臨界值警告圖示。 展開節點,直到達到 [平均頁面時間] 計數器為止,此計數器受到引發臨界值違規的程式碼所影響。

  11. 在 [圖形] 檢視中,請注意臨界值違規圖示也會針對發生的臨界值違規而顯示在 [頁面回應時間] 圖形上。

  12. 選取有違規圖示的繪圖線條。

  13. 此繪圖線條為粗體,而且 [平均頁面時間] 計數器會在 [紅色] (在前一個逐步解說中加入的報告名稱) 要求的圖形檢視圖例中反白顯示。

  14. 請注意,[平均頁面時間] 計數器的 [最大值] 資料行超過您指定的臨界值。

後續步驟

在這個逐步解說中,您已使用 Web 應用程式 ColorWebApp 和 Web 效能測試 ColorWebTest.webtest,建立負載測試,而且已了解如何開始一些基本分析做法。

若要了解如何使用虛擬使用者詳細資料圖表進一步分析負載測試,請參閱逐步解說:使用虛擬使用者活動圖來隔離問題

若要了解如何使用測試控制器和測試代理程式,將負載測試散發至多部電腦,請參閱逐步解說:在負載測試中使用測試控制器和測試代理程式

請參閱

工作

逐步解說:記錄和執行 Web 效能測試

逐步解說:建立 Web 效能測試程式碼

HOW TO:使用負載測試分析器在負載測試中檢視網頁回應時間

概念

在負載測試中指定電腦的計數器集合和臨界值規則

負載測試分析器概觀

負載測試分析器概觀

負載測試結果摘要概觀

使用負載測試分析器來分析負載測試中的臨界值規則違規

在負載測試分析器的圖形檢視中分析負載測試結果

在負載測試分析器的資料表檢視中分析負載測試結果和錯誤

其他資源

Step 4 - Specifying Run Settings in the New Load Test Wizard

編輯測試混合以指定負載測試情節中的 Web 瀏覽器類型

在負載測試情節中指定虛擬網路類型

使用負載測試編輯器編輯負載測試情節

編輯負載模式以模型化虛擬使用者活動

編輯測試混合模型以指定虛擬使用者執行測試的可能性

使用新增負載測試精靈建立負載測試

編輯測試混合模型以指定虛擬使用者執行測試的可能性

設定負載測試回合設定

使用負載測試分析器分析負載測試結果