匯出 (0) 列印
全部展開
本主題尚未接受評分 - 為這個主題評分

在混合式環境中執行負載測試

本主題將說明在混合式環境中執行 Visual Studio 負載測試。「混合式環境」是指將負載測試的元件裝載於不同內容 (例如內部部署) 或是當做 Windows Azure 工作者角色。例如,混合式環境會是測試代理程式在內部部署環境執行以及資料儲存機制位於 Windows Azure SQL Database 伺服器上的地方。這與<Windows Azure 中的 Visual Studio 負載測試概觀>中描述的系統相反。在該主題中,所有元件 (除了工作站以外) 都會以 Windows Azure 工作者角色來執行。

由於規範的原因或者您的應用程式特有的原因,可能必須在這些混合式環境中執行負載測試。不論是哪一種情況,本主題都會涵蓋您擁有的選擇,以及如何設定這種多變的情況。

作者:Jaimie Alva Bravo、Sidney Higa、Paolo Salvatori。

下載

這裡可以找到這些程序所需的檔案:VSLoadTestInMixedEnvironments

並行

在權衡不同組態時使用的一個考量因素如下:從大型資料中心執行許多處理序會提高「並行存取」(Concurrency)。並行存取定義為系統的一種屬性,也就是幾個工作會同時執行而且可能會有互動。有一個因素會限制並行存取:可用 IP 位址的數目。當系統處理的 IP 位址越多,並行處理也會越繁重。一般而言,可用的位址數目取決於您的 IP 提供者的規模。如果您的服務等級合約相當高,通常會配置大量的 IP 位址。但是,這種合約不常見。不過,當您使用 Windows Azure 做為平台時,您會因為使用 Microsoft 資料中心和其資源而獲益。其中包括 IP 位址的大型集區。Windows Azure 中的託管服務會被指派虛擬 IP 位址。在本討論內容中,IP 位址是由面向外 (網際網路) 的負載平衡器 (不是託管服務) 所使用。而且擁有大量 IP 位址是 Microsoft 資料中心的優點。也請注意,並非所有系統都需要這個並行存取層級。

這樣的並行存取容量增加是在 Windows Azure 上執行負載測試的另一大優點。這個並行存取層級也最難在大型資料中心外部重現。

因素

有六個因素會影響並行存取。前兩個因素是您執行負載測試的環境:雲端和內部部署。

  • 內部部署

  • 雲端

其他四個因素則是負載測試的元件。其中包括:

  • 測試控制器

  • 測試代理程式

  • 結果儲存機制

  • 已測試的系統

這裡顯示四個元件:

載入測試因素

在圖中,線的相對寬度代表資料傳輸數量,線越寬代表資料數量越多。最繁重的資料傳輸發生在測試控制器與結果儲存機制之間。最輕的負載發生在已測試的系統與控制器之間 (但是,實際負載取決於已測試的系統產生的記錄多寡)。如需參考,請參閱<Windows Azure 中的 Visual Studio 負載測試概觀>中的圖形。

note附註
為了清楚呈現,此圖假設裝載 Visual Studio 的工作站也同樣裝載測試控制器。這樣的組態會促進 Visual Studio 與測試控制器之間的通訊。在負載測試期間,控制器會讓大量的資料流回 Visual Studio,以進行即時效能監控。

拓撲

在提供四個元件以及兩個環境時,各種拓撲選擇也變得顯而易見。負載測試的四個元件可以在其中一個環境或另一個環境中存在。例如,這裡陳述兩個最簡單的拓撲。

  1. 雲端中的所有元件。

  2. 內部部署環境中的所有元件。

為了清楚說明,這個表顯示兩個最簡單的選擇。

 

控制器 代理程式 儲存機制 已測試的系統 注意

內部部署

內部部署

內部部署

內部部署

有限的並行存取以及沒有網路流量流到外部。

雲端

雲端

雲端

雲端

大規模並行存取 (更多 IP 位址) 以及雲端外沒有任何網路流量。

現在,拓撲更為複雜。為了讓事情變簡單,這個表會顯示一個主要部分。在這個表格中,控制器會在內部部署環境中執行。

從代理程式到已測試的系統之間的流量不算在內,因為我們假定這部分的流量為任何測試成本的一部分。也請注意,下表的網路流量具有貨幣成本。當您從資料中心將資料傳輸到外面時,必須付費,內部流量不用付費。如需價格詳細資料,請參閱價格詳細資料,並搜尋「以 GB 測量的資料傳輸」。

下一個表格會顯示主要分割點:在內部部署環境中執行測試控制器時。在此情況下,元件之間的流量必須跨越界限,而且會因為元件與其「可溝通性」等級而有不同程度的後果。

控制器在內部部署環境中執行

控制器 代理程式 儲存機制 已測試的系統 注意

內部部署

內部部署

內部部署

雲端

受限的並行存取,從已測試的系統到控制器的網路流量。

內部部署

內部部署

雲端

內部部署

受限的並行存取,從控制器到儲存機制的網路流量。

內部部署

內部部署

雲端

雲端

受限的並行存取,從已測試的系統到控制器,再回到儲存機制的網路流量。

內部部署

雲端

內部部署

內部部署

較大規模的並行存取,從代理程式到控制器的網路流量。

內部部署

雲端

內部部署

雲端

較大規模的並行存取,從代理程式到已測試的系統,再到控制器的網路流量。

內部部署

雲端

雲端

內部部署

較大規模的並行存取,從代理程式到控制器,再回到儲存機制的網路流量。

內部部署

雲端

雲端

雲端

較大規模的並行存取,從代理程式和已測試的系統到控制器,再回到儲存機制的網路流量。

這個表顯示第二個主要部分。在這個表格中,控制器會在雲端執行。

控制器在雲端執行

控制器 代理程式 儲存機制 已測試的系統 注意

雲端

內部部署

內部部署

內部部署

受限的並行存取,從代理程式和測試系統到控制器,再回到儲存機制的網路流量。

雲端

內部部署

內部部署

雲端

受限的並行存取,從代理程式到控制器,再回到儲存機制的網路流量。

雲端

內部部署

雲端

內部部署

受限的並行存取,從代理程式和測試系統到控制器的網路流量。

雲端

雲端

雲端

雲端

較大規模的並行存取,從代理程式到控制器的網路流量。

雲端

雲端

內部部署

內部部署

較大規模的並行存取,從已測試的系統到控制器,再回到儲存機制的網路流量。

雲端

雲端

內部部署

雲端

較大規模的並行存取,從控制器到儲存機制的網路流量。

雲端

雲端

雲端

內部部署

較大規模的並行存取,從已測試的系統到控制器的網路流量。

雲端

多雲端

雲端

雲端

最大規模的並行存取,至少從 DC1 中已測試的系統到 DC2 中的控制器 (根據設定的狀況,規模可能會更大)。

建議

為了完整起見,將會顯示拓撲。您可能無法選擇拓撲,例如,如果您需要超過 100 GB 的 SQL Server 資料儲存體,您必須將它儲存在內部部署環境,目前 SQL Database 的限制是 100 GB。不過,如果您有某一條退路,這裡是最好的拓撲。這些建議最有效率,而且能夠在兩個主要部分 (內部部署的控制器或雲端上的控制器) 中提供最高並行存取層級。

控制器在內部部署環境中執行時效果最佳

控制器 代理程式 儲存機制 已測試的系統 注意

內部部署

雲端

內部部署

內部部署

較大規模的並行存取,從代理程式到控制器的網路流量。

內部部署

雲端

內部部署

雲端

較大規模的並行存取,從代理程式到已測試的系統,再到控制器的網路流量。

控制器在雲端執行時效果最佳

控制器 代理程式 儲存機制 已測試的系統 注意

雲端

內部部署

雲端

內部部署

受限的並行存取,從代理程式和測試系統到控制器的網路流量。

雲端

雲端

雲端

雲端

較大規模的並行存取,從代理程式到控制器的網路流量。

雲端

多雲端

雲端

雲端

最大規模的並行存取,至少從 DC1 中已測試的系統到 DC2 中的控制器 (根據設定的狀況,規模可能會更大)

增加複雜性需求

在真實世界中,您的實際元件配置可能會很複雜。測試中的系統可以有許多子元件,每一個子元件都以工作者角色或 Web 角色執行,或者使用內部部署服務。例如,某個元件會初始化系統或是提供驗證服務。於是,許多元件可能都必須與系統的其他部分通訊。這一組元件是負載測試系統本身 (包括控制器、代理程式和儲存機制) 以外所額外添加的。下圖顯示包含許多部分的系統。本圖只是為了說明,真實世界的解決方案會有許多片段,也會有許多通訊需求。系統的細節並不是重點。

複雜組態的範例

在這樣複雜的情況下,視需要將各種元件設置在 Windows Azure 或內部部署環境中依然是可行的。下一節將概述所需的步驟。

安裝程式

這裡的設定是<為負載測試佈建 Windows Azure>文件中基本設定的一組替代方案。這裡的程序會指定如何使用正確的片段來設定管理入口網站。例如,其中會說明如何設定儲存體帳戶,以及如何設定 Windows Azure Connect 群組。

這裡的第一個替代方案可讓您使用 SQL Database 當做結果儲存機制。第二個替代方案會指示如何在每一個工作者角色上設定端點。端點會啟用代理程式、已測試的系統、測試控制器與輔助因子 (必要時) 之間的通訊,輔助因子也就是裝載 Visual Studio 的工作站。在最清楚的模式下,電腦會設置在內部部署環境。但是,如果您的應用程式要求您在執行測試時使用電腦,也可以將電腦裝載為 Windows Azure 工作者角色。

必要條件

下面是必要的步驟:

  • 下載 LoadTest2010.bacpac 檔案。

  • (選擇性)。在工作者角色上安裝 Visual Studio 2010 Ultimate。

    如果您打算在工作者角色上執行測試控制器,請在工作者角色上安裝 Visual Studio 2010 Ultimate。在 Visual Studio 中將工作者角色加入至 Windows Azure 專案。確定已啟用遠端桌面。將工作者角色加入至 Connect 群組,以便將它連接至內部部署網站。使用遠端桌面連接到工作者角色,然後安裝 Visual Studio 2010 Ultimate。

使用 SQL BACPAC 佈建 Windows Azure SQL Database

使用這個方法可將結果儲存到 SQL Database 上,以儲存負載測試資料。將名為 LoadTest2010.bacpac 的檔案上傳到您的 Azure 儲存體帳戶。您也必須具有下列必要條件:

  1. SQL Database 帳戶。

  2. 在訂閱中建立的 SQL 伺服器執行個體。如需詳細資訊,請參閱如何建立 Windows Azure SQL Database 伺服器

  3. 有權修改伺服器執行個體的登入名稱與密碼。

若要使用 BACPAC 佈建 SQL Database

  1. 將 LoadTest2010.bacpac 檔案上傳到您的 Azure 儲存體帳戶。

    使用 StorageServicesSmartClient 將檔案上傳至公用容器。一旦上傳此 .dacpac 檔案之後,您便可以使用管理入口網站的匯入功能來建立資料庫。

  2. 在管理入口網站中,按一下 [資料庫]

  3. 展開包含您所使用之 SQL Database 伺服器的訂閱,然後選取伺服器。

  4. 在功能區的 [資料庫] 區段中,按一下 [匯入]

  5. 依照這裡的指示匯入 LoadTest2010.bacpac 檔案:如何:匯入資料層應用程式 (Windows Azure SQL Database)

一旦您在 SQL Database 中建立儲存機制之後,請設定測試控制器。尤其要針對「結果存放區」(Result Store) 設定連接字串。只有 Visual Studio Ultimate 中才有設定此值的對話方塊。不過在您繼續進行之前,您要做一項選擇。請決定是否要執行測試控制器:

  1. 從內部部署電腦。

    如果您選擇此選項,請從內部部署電腦遵循下一組指示進行。

  2. 從 Windows Azure 上的工作者角色,執行 Visual Studio 的執行個體。

    如果您決定從 Windows Azure 上的工作者角色執行測試控制器:

    1. 建立 Windows Azure Connect 群組。

    2. 將內部部署工作站加入至群組中。

    3. 在部署託管服務之後,請使用遠端桌面連接到將裝載 Visual Studio 的工作者角色。

    4. 在網路上從安裝程式 (.msi) 檔案安裝 Visual Studio 2010 Ultimate

若要設定測試控制器的內部部署執行個體

  1. 以管理員的身分執行 Visual Studio。

  2. 在 Visual Studio 的 [測試] 功能表上,按一下 [管理測試控制器]

  3. [負載測試結果存放區] 文字底下,按一下省略符號按鈕。

  4. [連接屬性] 對話方塊中,貼上 SQL Database 伺服器名稱。

  5. [登入伺服器] 文字底下,選取 [使用 SQL Server 驗證] 選項。

  6. [使用者名稱] 值設定為 SQL Database 管理員的登入名稱。

  7. [密碼] 欄位值設定為 SQL Database 管理員的密碼值。

  8. [連接到資料庫] 區段中,選取 LoadTest2010 資料庫。

    如果連接字串和認證都正確,請檢查 [設定測試控制器] 對話方塊。此對話方塊會填入正確的值。

使用端點而非 Azure Connect 群組

使用 Connect 群組有一個替代方案:在每個工作者角色上設定端點,以便在執行個體之間通訊。這裡有一個優點:連接會更可靠。請使用下列步驟來嘗試這個替代方案。

若要在工作者角色執行個體上設定端點

  1. 在 Visual Studio 中,開啟負載測試專案。

  2. 使用內部 TCP 端點設定每個工作者角色。如需將端點加入至某個角色的一般指示,請參閱如何定義角色的內部端點。請針對每個端點,指定不同的私用通訊埠編號。下表顯示每個角色的端點組態。請注意,所有的這些端點都是使用 TCP 通訊協定的私用通訊埠:

     

    角色名稱 通訊埠名稱 通訊埠編號

    代理程式

    SQL

    1433

    代理程式

    WFS

    137-445

    代理程式

    代理程式接聽程式通訊埠

    6910

    代理程式

    AgentDownload

    80

    控制器

    SQL

    1433

    控制器

    WFS

    137-445

    控制器

    控制器

    6910

    控制器

    AgentDownload

    80

    控制器

    控制器接聽程式通訊埠

    6901

    控制器

    代理程式

    6910

    控制器/工作站

    對講

    49152

  3. 設定特定通訊埠,好讓控制器傳送訊息給代理程式。在裝載控制器的工作者角色上使用以下登錄機碼:

    1. HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\VisualStudio\10.0\EnterpriseTools\QualityTools\ListenPortRange\PortRangeStart

    2. HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\VisualStudio\10.0\EnterpriseTools\QualityTools\ListenPortRange\PortRangeEnd

  4. 在啟動工作者角色時,執行 setupwfw.cmd 檔案。

  5. 使用遠端桌面針對每個角色執行下列動作:

    1. 開啟下列目錄:\Windows\System32\drivers\etc\

      開啟 hosts 檔案進行編輯。您可以使用 Notepad.exe 開啟檔案。請將 "hosts" 檔案放在具有主機名稱和 IP 位址的每個系統上。編輯檔案是手動程序。若要尋找某個角色的 IP 位址,請在每一個角色上開啟命令視窗,並輸入 IPCONFIG。Hosts 檔案的範例如下:

    2. 
      # Copyright (c) 1993-2009 Microsoft Corp.
      #
      # This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
      #
      # This file contains the mappings of IP addresses to host names. Each
      # entry should be kept on an individual line. The IP address should
      # be placed in the first column followed by the corresponding host name.
      # The IP address and the host name should be separated by at least one
      # space.
      #
      # Additionally, comments (such as these) may be inserted on individual
      # lines or following the machine name denoted by a '#' symbol.
      #
      # For example:
      #
      #      102.54.94.97     rhino.acme.com          # source server
      #       38.25.63.10     x.acme.com              # x client host
      
      # localhost name resolution is handled within DNS itself.
      #127.0.0.1       localhost
      #::1             localhost
      10.115.222.131 RD00155D317984    # workstation
      10.115.218.125 RD00155D3175BF    # Controller
      10.115.222.142 RD001455316FEE    # Agent00
      10.115.196.26 RD00D32D6747       # Agent01
      10.115.228.52  RD000155D317EBD  # Agent02
      10.115.222.131 RD00155D317984    # Agent03
      
      
  6. 每個角色都可以通訊,而且您可以在每個系統上安裝二進位檔案。若要加速此程序,請將二進位檔案放在 blob 存放區中。此外,請執行屬於啟動工作之一部分的其他命令。如需詳細資訊,請參閱如何定義角色的啟動工作

  7. 在 SQL Server 上,為控制器和工作站建立本機 SQL 帳戶,以存取結果資料庫。然後設定使用這些帳戶的儲存機制。當您設定控制器時建立資料庫,然後將它設定為從 IDE 使用帳戶。


建置日期:

2013-07-25
本文對您有任何幫助嗎?
(剩餘 1500 個字元)
感謝您提供意見

社群新增項目

顯示:
© 2014 Microsoft. 著作權所有,並保留一切權利。