若要檢視英文版的文章,請選取 [原文] 核取方塊。您也可以將滑鼠指標移到文字上,即可在快顯視窗顯示英文原文。
譯文
原文

對 SharePoint 2010 和 2013 應用程式執行 Web 效能和負載測試

 

您可以在 SharePoint 應用程式上使用 Web 效能和負載測試驗證效能和壓力能力。 負載測試可設定為模擬各種狀況,例如使用者負載、瀏覽器類型和網路類型。

需求

  • Visual Studio 企業版

我可以在哪裡建立、執行及管理 Web 效能測試和負載測試?

Web 效能和負載測試是使用隨附於 Visual Studio 的 Web 效能和負載測試專案類型進行管理。

本主題內容

Web 效能和負載測試可用來驗證 SharePoint 應用程式的功能、效能和壓力功能。 包含對 SharePoint 應用程式的 Web 效能和負載測試可以大幅改善小組的應用程式生命週期管理流程,而且如果您的應用程式採用連續傳遞方法,這樣做也會很有價值。

如需詳細資訊,請參閱使用 Visual Studio 2012 測試持續傳遞

  • Web 效能測試

    Web 效能測試可於錄製後,對您的 SharePoint 應用程式執行並進行分析。 例如,您可以建立對 SharePoint 應用程式進行下列作業的 Web 效能測試:

    SharePoint 2010

    • 網站轉譯

    • 文件庫作業

    • 工作、行事曆和程式庫作業

    • 搜尋內容

    • Wiki

    • 自訂 Web 組件

    • 工作流程

    • 功能區中的多項作業

    • 對多個網站和清單播放測試

    • Office Web Applications (OWA) – 上傳和下載的情節

    • 管理中繼資料 SA 並查閱清單和程式庫中的資料行

    • 整合 SharePoint 與 Excel Services

    • 對於 InfoPath - 您可以使用 CodePlex 提供的外掛程式 (工具)

    SharePoint 2013

    • 上面針對 SharePoint 2010 列出的所有情節

    • 社交

    • SharePoint 應用程式

  • 負載測試

    若要對您的 SharePoint 應用程式在模擬高使用者負載、不同的網路拓撲和其他條件的情況下進行壓力測試,可以建立使用您的 SharePoint Web 效能測試的負載測試。

我還應該知道什麼?

備註

  • 必要條件 只有 SharePoint 2010 和 SharePoint 2013 才支援 SharePoint 應用程式的 Web 效能測試。

  • 必要條件 SharePoint 應用程式不支援 Web 效能測試程式碼

    Web 效能測試程式碼」(Coded Web Performance Test) 通常是透過將已錄製的現有 Web 效能測試轉換成程式碼所建立。 Web 效能測試程式碼是產生 WebTestRequests 系列的 .NET 類別。 使用 C# 或 Visual Basic 都能對這個 Web 效能測試程式碼進行程式編輯。

System_CAPS_note注意事項

這個程序假設您有一般 SharePoint 2010 網站 http://SP2010 和名為 SampleSite 的子網站。 您可以在 SharePoint 中,從 [網站動作] 下拉式清單選擇 [新網站] 建立子網站。

  1. 建立新的 Web 效能和負載測試專案 在 Visual Studio 功能表上,依序選擇 [檔案]、[新增] 和 [專案]。 展開 [Visual C#] 或 [Visual Basic],然後選擇 [測試]。 選擇 [Web 效能和負載測試專案] 並選擇 [確定]。

  2. [Web 效能測試編輯器] 隨即顯示空白測試。 若要錄製測試,請選擇 [加入錄製] 按鈕。

    加入錄製
  3. 新的空白 Web 瀏覽器視窗隨即出現,且視窗左側會有 [Web 測試錄製器] 面板。 在瀏覽器網址列中輸入 SharePoint 網站的名稱。 Visual Studio 將在 [Web 測試錄製器] 面板中錄製並列出 URL。

    Web 效能測試錄製器
  4. 執行下列步驟,巡覽至 SharePoint 子網站 SampleSite 並將新項目加入至網站工作清單:

    1. 從 SharePoint 網站頂端選擇 [SampleSite]。

      選擇 SampleSite
    2. 從左邊的功能表選擇 [工作]。

      選擇工作

      [SampleSite > 工作: 所有工作] 頁面隨即出現。

    3. 若要將新工作加入至清單,請選擇 [加入新項目] 連結。

      加入新項目

      [工作 - 新項目] 對話方塊隨即出現。 唯一的必要欄位是 [標題],輸入的值並不重要。 完成對話方塊上的資訊並選擇 [儲存]。

      建立新工作項目
    4. Web 瀏覽器會返回 [SampleSite > 工作: 所有工作],這個頁面現在會列出前一個步驟中加入的新工作。

      已加入的新工作
    5. 若要結束錄製,請選擇 [Web 測試錄製器] 面板上的 [停止]。

      動態參數偵測對話方塊隨即出現。 它會指出偵測進度。 偵測應該很快就會完成。

      動態參數偵測

      Visual Studio 將返回 [Web 效能測試編輯器],這裡會顯示您新建立的 Web 效能測試。

      Web 效能測試編輯器
  5. 若要確認測試正確執行,請先瀏覽 SharePoint 網站檢視現有的清單項目:

    http://sp2010/SampleSite/Lists/Tasks/AllItems.aspx

  6. 回到 Visual Studio。 選擇 [Web 效能測試編輯器] 上的 [執行測試] 按鈕。 您的測試將會執行您錄製的動作,將新項目加入至 SharePoint 中的工作清單。

    執行 Web 效能測試
  7. 選擇 SharePoint 網站所在瀏覽器視窗中的 [重新整理],您應該會立即看到加入至清單的新工作項目。

部分網站和應用程式會在一個或多個 Web 要求中使用動態參數 動態參數」(Dynamic Parameter) 是每次使用者執行應用程式時將產生值的參數。 由於每次執行測試時動態的值可能會不同,因此動態參數可能導致 Web 效能測試播放失敗。 因此,您無法播放錄製的值。 工作階段 ID 即為動態參數的一例。 工作階段 ID 通常每隔 5 到 30 分鐘就會變更一次。

由於要求本身為動態以及 SharePoint 所使用的回應格式,SharePoint 網站上錄製的 Web 效能測試會很複雜。 即使 Web 效能測試的錄製和播放可在單一項目或網站上運作,仍需要對 Web 效能測試進行大量修改,才能讓測試在多個 SharePoint 網站或伺服器上運作。 對 SharePoint 網站的每個要求可能需要超過 30 項個別修改,才能處理動態 GUID 和其他層面。

Web 效能測試錄製器和播放引擎會自動處理最常用的動態參數類型:

除了動態參數之外,Visual Studio 還會對 SharePoint 應用程式的 Web 效能測試記錄執行下列動作:

SharePoint 經常使用唯一的 GUID,如果這些測試預計會在不同的 SharePoint 網站上執行,則必須將每個 GUID 做為動態參數處理。 例如,在單一要求上可能會有 30 個或更多個位置需要處理您要求中的動態 GUID。 更複雜的是,GUID 不僅會出現在表單張貼要求的值部分,也會出現在要求的其他部分:

  • 張貼名稱欄位的動態 GUID

  • 表單張貼參數值中的 GUID

    這麼複雜的原因是 GUID 位於另一個動態參數內。 Visual Studio 會自動偵測這種情況,並加入新的擷取規則讓您處理這種情況。

  • _EVENTARGET 欄位中的動態 GUID

  • 雖然這不是 GUID,但是它示範了要求中需要處理網站名稱的位置。

除了 GUID 之外,SharePoint 測試還包含許多其他需要處理的動態值,例如 ListID。 Visual Studio 會加入必要的擷取規則,然後在測試中搜尋以取代所有出現的項目。

您會使用 ID 選取要檢視的項目 (例如,您要檢視工作)。

根據特定的使用案例而定,您可能想要隨機選取一個項目,而不是錄製期間選取的特定項目。 為了讓這項工作更容易,Visual Studio 會使用擷取規則 ba9e785e-09e4-4a1d-b0cd-d047a372fba6#UsingValidationExtractionRulesExtractionRules 偵測 ID。 如果 Visual Studio 無法使用擷取規則找到清單項目 ID,則 Visual Studio 會建立 ID 的內容參數,並繼續向前搜尋以取代所有偵測到 ID 的區域。

如果您想要針對項目 ID 使用動態值,可以使用擷取規則簡化這個程序。

SharePoint 會產生大量要求,但其中部分並非必要。 例如,它會產生處理核心作業時不需要的快取 URL 要求,例如要求 blank.gif。 這樣會增加處理指令碼的難度。 如果您的測試目標不需要這些要求 (例如,頻寬/WAN 測試),可以從測試中安全地移除這些要求。

System_CAPS_tip提示

非必要的要求篩選清單可透過設定錄製 SharePoint Web 效能測試的選項進行修改。

若要將字串參數化,您可以建立內容參數,以便在 Web 效能測試中使用。 例如,您可以建立網站的內容參數。 內容參數可以將測試從某個網站快速變更到另一個網站。 Visual Studio 會尋找 SharePoint 網站名稱,並針對偵測到的每個網站名稱加入內容參數。 此外,它也會取代 URL 以及其他可能會遇到網站名稱的區域 (例如,查詢字串、表單張貼或字串內容要求) 中出現的所有網站名稱。

有些情況下會遇到網站名稱,不過需要使用 URL 編碼格式。 Visual Studio 會先嘗試啟用 URL 編碼方式,將參數數目降至最低。 如果這樣做無效,則會加入另一個網站名稱,指出該值必須經過 URL 編碼。 如果您在 SharePoint 網站名稱中使用空格或其他特殊字元,就會遇到這種情況。

System_CAPS_tip提示

您可以設定錄製 SharePoint Web 效能測試的 Visual Studio 選項,以指定網站名稱參數化。

在許多情況下,SharePoint 會傳回成功狀態碼 (http 200),但要求實際上是失敗。 這可能造成您誤以為測試正常運作,但實際上測試因為某些錯誤情況而失敗。 加入的 Web 測試層級驗證規則 有助於偵測這些條件,並且警告您要求已失敗。

如需有關使用驗證規則的詳細資訊,請參閱本主題中的使用驗證規則驗證資料,以驗證 SharePoint 應用程式的運作是否正常

System_CAPS_tip提示

您可以設定錄製 SharePoint Web 效能測試的 Visual Studio 選項,以包含錯誤的全域驗證。

在某些情況下,SharePoint 2010 會需要特定標頭值,例如 x-requestdigest。 如果這些值不存在,則要求會因為安全性或其他錯誤而失敗。 Visual Studio 能夠記錄這些標頭,並建立擷取規則動態更新這些值。

如需有關使用擷取規則的詳細資訊,請參閱本主題中的使用擷取規則從 Web 要求擷取資料,以驗證 SharePoint 應用程式的運作是否正常

  1. 從 Visual Studio 功能表選擇 [工具],然後選擇 [選項]。

  2. 展開 [Web 效能測試工具],然後展開 [Web 測試] 並選擇 [SharePoint]。

用於針對 SharePoint 執行 Web 測試的 Visual Studio 選項

您可以開啟 Visual Studio [選項] 對話方塊,針對 SharePoint 應用程式的 Web 效能測試設定下列選項:

  1. 啟用或停用 SharePoint 應用程式的 Web 效能和負載測試。

  2. 根據指定的準則,篩選掉您或您的小組可能認為是測試中不必要的要求。 以下是預設篩選的 URL 準則和模式,可幫助您避免不必要的要求。 如果您的小組需要在測試中包含下列任何模式,您可以從清單中將它們移除。

    預設篩選

    URL 準則

    URL 模式

    結尾為

    Blank.gif

    結尾為

    Blank.htm

    結尾為

    ScriptResx.ashx

    結尾為

    Commandui.ashx

  3. 您或您的小組可以使用內容參數將網站名稱參數化。 內容參數可讓您參數化 Web 效能測試中的字串,並且在這個組態選項中讓您在網站之間快速變更測試。 內容參數預設為 'SiteName'。

  4. 針對常見錯誤模式套用全域驗證規則。 透過驗證針對 ErrorPattern 輸入的文字是否出現在 SharePoint 伺服器的 HTTP 回應中,協助偵測回應中是否發生錯誤。 您可以在 ErrorPattern 中輸入多個錯誤模式,並利用分號 (;) 分隔這些模式。 如果回應中出現針對 ErrorPattern 輸入的一個或多個字串,則 Web 效能測試將會判定 HTTP 回應中發生錯誤,而且 Web 效能測試將會失敗。 根據預設,ErrorPattern 包含下列錯誤字串:\[{"Error":[^n];"SharepointError";"HasException":true。 預設錯誤字串可依據您小組的需求移除或編輯。

  5. 錯誤字串可以做為規則運算式選擇性地輸入。

驗證規則可透過驗證 Web 要求傳回的頁面上是否存在文字、標記或屬性,確認 SharePoint 應用程式是否正常運作。 驗證規則也可以驗證要求完成所需的時間,以及表單欄位及其值是否存在。

如需驗證規則清單 (包括 SharePoint 應用程式使用的規則),請參閱ba9e785e-09e4-4a1d-b0cd-d047a372fba6#UsingValidationExtractionRulesValidationRules

擷取規則可透過擷取回應 Web 要求的資料,確認 SharePoint 應用程式是否正常運作。 擷取規則會以名稱值組,將結果儲存在測試內容中。 擷取規則可以從欄位、文字、屬性、標頭、規則運算式和隱藏欄位中擷取。

如需 SharePoint 的擷取規則清單,請參閱 ba9e785e-09e4-4a1d-b0cd-d047a372fba6#UsingValidationExtractionRulesSharePointExtractionRules

為您的 SharePoint 應用程式建立 Web 效能測試之後,您可以建立負載測試來測試應用程式效能和壓力能力。 負載測試是使用 [新增負載測試精靈] 所建立。 使用精靈時,可以設定如何測試 SharePoint 應用程式的效能和壓力能力。

使用精靈建立負載測試

在 [方案總管] 中,開啟 Web 效能和負載測試專案節點的內容功能表,選擇 [加入],然後選擇 [負載測試]。

精靈會為新的負載測試提供組態選項,包括:

  • 2e93860a-a67a-43a2-9b0a-5ec65ca6e7a7#CreatingLoadTestsUsingWizardStep2_1:負載測試期間能夠使用的虛擬使用者數目,以及測試期間加入這些使用者的速度。

  • 2e93860a-a67a-43a2-9b0a-5ec65ca6e7a7#CreatingLoadTestsUsingWizardStep2_2:虛擬使用者在負載測試情節中執行特定測試的可能性。

  • 2e93860a-a67a-43a2-9b0a-5ec65ca6e7a7#CreatingLoadTestsUsingWizardStep2_3:包含在負載測試中的 Web 效能測試、單元測試和自動程式碼 UI 測試的混合。

  • 2e93860a-a67a-43a2-9b0a-5ec65ca6e7a7#CreatingLoadTestsUsingWizardStep2_4:測試中使用的網路類型。 例如,LAN 和 56K 撥號。

  • 2e93860a-a67a-43a2-9b0a-5ec65ca6e7a7#CreatingLoadTestsUsingWizardStep2_5:負載測試中使用的 Web 瀏覽器類型。 例如,Windows Internet Explorer 9 和 Windows Internet Explorer 10。

  • 2e93860a-a67a-43a2-9b0a-5ec65ca6e7a7#CreatingLoadTestsUsingWizardStep3:計數器集合是系統效能計數器的集合,方便您在負載測試期間進行監視。 計數器集合是依據技術而組合的,例如,ASP.NET 或 SQL 計數器集合。

    System_CAPS_note注意事項

    負載測試中使用的預先定義效能計數器集合在 SharePoint 中無法使用。

  • 2e93860a-a67a-43a2-9b0a-5ec65ca6e7a7#CreatingLoadTestsUsingWizardStep4:回合設定決定了負載測試屬性,例如測試的長度、熱身期間、所回報的錯誤詳細資料數上限和取樣率。

從 [負載測試編輯器] 或 [負載測試] 功能表執行負載測試

執行負載測試

Web 效能測試結果檢視器可讓您檢視 Web 效能測試中每個要求的詳細資料,以及對這些要求產生的回應。 [Web 效能測試結果檢視器] 會使用樹狀檢視來顯示要求以及最上層要求底下的任何巢狀相依要求。 頁面重新導向也會顯示在樹狀目錄中。

您可以使用負載測試分析器找出應用程式的瓶頸、識別應用程式的錯誤,以及測量應用程式的改進程度。 可透過下列方式使用 [負載測試分析器] 來分析負載測試結果:

  • 在負載測試執行時予以監視。

  • 在負載測試完成後予以分析。

  • 檢視上一次負載測試的結果。

System_CAPS_warning警告

SharePoint 應用程式不支援 Web 效能測試程式碼。

失敗的原因是正在為工作區建立新網站,而且 SharePoint 嘗試在動態參數偵測期間建立同名的網站。

解決方法:更新表單張貼參數中的會議標題參考,讓建立會議和建立會議工作區 Web 要求在您每次播放 Web 效能測試時使用唯一的會議標題。 由於新網站是使用會議標題所建立,因此應該是唯一的。 否則,建立工作區要求會失敗。

解決方法:如果上傳文件 Web 效能測試已加入至另一個資料夾中,則在測試設定中將相同的文件明確指定為部署項目。

-或-

在 Web 效能試和負載測試專案的根層級建立 Web 效能測試,而不是在不同的資料夾中建立。

如果您錄製刪除工作、行事曆約會或文件的 Web 效能測試,並嘗試執行該測試,該測試會因為對應的工作、約會或文件已刪除而失敗。

解決方法:使用 SharePoint2010.FindListItems 擷取規則將所需清單項目的 GUID 擷取到內容參數中。 您可以根據標題名稱和索引編號篩選選取範圍。 在後續 [刪除] 要求中傳遞該參數。

-或-

讓要求外掛程式從前一個要求的回應擷取所需項目的 GUID,然後將它傳遞至刪除要求。

顯示: