在 Azure 虛擬網路中部署 Azure 負載測試來測試私人端點
在本文中,了解如何使用 Azure 負載測試來測試私人應用程式端點。 您將建立 Azure 負載測試資源,並將其啟用以從虛擬網路內產生負載 (虛擬網路插入)。
這項功能具有下列使用方式情節:
- 對部署在 Azure 虛擬網路中的端點產生負載。
- 對具有存取限制 (例如限制用戶端 IP 位址) 的功用端點產生負載。
- 對不開放公開存取且透過 ExpressRoute 連線至 Azure 的內部部署服務產生負載。
深入了解在虛擬網路中部署 Azure 負載測試的案例。
下圖提供技術概觀:
當您啟動負載測試時,Azure 負載測試服務會在包含應用程式端點的虛擬網路中插入下列 Azure 資源:
- 測試引擎虛擬機器。 這些 VM 會在負載測試期間叫用您的應用程式端點。
- 公用 IP 位址。
- 網路安全性群組 (NSG)。
- Azure Load Balancer。
這些資源是暫時性的,而且只會在負載測試執行期間存在。 如果您有不得在子網路中部署公用 IP 位址、Azure 負載平衡器或網路安全性群組的限制,則可以停用這些資源的部署。 如需詳細資訊,請參閱設定負載測試。
如果您限制虛擬網路的存取,您必須設定虛擬網路,讓這些 Azure 負載測試能夠與插入的 VM 通訊。
必要條件
- 您的 Azure 帳戶擁有虛擬網路上的網路參與者 (部分機器翻譯) 角色或其父系角色。 請參閱檢查 Azure 資源的使用者存取權,以確認您的權限。
- 您用於 Azure 負載測試的子網路必須有足夠的未指派 IP 位址,才能容納用於測試的負載測試引擎數目。 深入了解如何為高階負載設定測試。
- 子網路不應委派至任何其他 Azure 服務。 例如,不應該委派給 Azure 容器執行個體 (ACI)。 深入了解子網路委派。
- 子網不應該啟用 IPv6。 Azure 負載測試不支援啟用 IPv6 的子網路。 深入瞭解適用於 Azure 虛擬網絡 的 IPv6
- Azure CLI 2.2.0 版或更新版本 (如果您使用 CI/CD)。 執行
az --version
以尋找電腦上安裝的版本。 如果您需要安裝或升級 Azure CLI,請參閱如何安裝 Azure CLI。
設定虛擬網路
若要測試私人端點,請將 Azure 負載測試連線到 Azure 虛擬網路。 虛擬網路應該至少有一個子網路,並允許流往 Azure 負載測試服務的輸出流量。
如果您還沒有虛擬網路,請遵循下列步驟在 Azure 入口網站中建立 Azure 虛擬網路 (部分機器翻譯)。
重要
虛擬網路必須位於與負載測試資源相同的訂用帳戶和相同的區域中。
建立子網路
當您在虛擬網路中部署 Azure 負載測試時,建議您針對 Azure 負載測試和應用程式端點使用不同的子網路。 此方法可讓您針對每個用途特別設定網路流量存取原則。 深入了解如何將子網路新增至虛擬網路。
(選擇性) 設定流量規則
Azure 負載測試會要求虛擬網路中所插入的 VM 允許對 Azure 負載測試服務進行輸出存取。 根據預設,當您建立虛擬網路時,便已允許輸出存取。
如果您打算進一步限制網路安全性群組對於虛擬網路的存取,或如果您已經有網路安全性群組,則必須設定輸出安全性規則,以允許流量從測試引擎 VM 流向 Azure 負載測試服務。
若要設定 Azure 負載測試的輸出存取:
登入 Azure 入口網站。
移至您的網路安全性群組。
如果您還沒有 NSG,請遵循下列步驟來建立網路安全性群組。
在與虛擬網路相同的區域中建立 NSG,然後將其與您的子網路建立關聯。
選取左側導覽中的 [輸出安全性規則]。
選取 [+ 新增] 來新增輸出安全性規則。 輸入下列資訊以建立新的規則。
欄位 值 來源 任何 來源連接埠範圍 * 目的地 任何 目的地連接埠範圍 * 名稱 azure-load-testing-outbound 說明 用於協調負載測試所涉及的各種作業。 選取 [新增] 將輸出安全性規則新增至網路安全性群組。
設定負載測試指令碼
執行 JMeter 指令碼的測試引擎 VM 會插入至包含應用程式端點的虛擬網路中。 您現在可以使用私人 IP 位址或使用網路中的名稱解析,直接參考 JMX 檔案中的端點。
例如,如果端點的 IP 位址為 10.179.0.7,且位在子網路範圍為 10.179.0.0/18 的虛擬網路中,則 JMX 檔案可能會有此資訊:
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Internal service homepage" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="Service homepage" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain">10.179.0.7</stringProp>
<stringProp name="HTTPSampler.port">8081</stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path"></stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
</HTTPSamplerProxy>
設定負載測試
若要在負載測試中包含私人裝載的端點,您必須設定負載測試的虛擬網路設定。 您可以在 Azure 入口網站中設定虛擬網路設定,或在 CI/CD 管線的 YAML 測試組態檔中指定。
重要
若在虛擬網路中部署 Azure 負載測試,則會產生額外費用。 Azure 負載測試會在您的訂用帳戶中部署 Azure Load Balancer 和公用 IP 位址,而產生的流量可能會產生費用。 如需詳細資訊,請參閱虛擬網路定價資訊。
在 Azure 入口網站中設定虛擬網路
您可以在負載測試的建立/更新精靈中指定虛擬網路組態設定。
使用您 Azure 訂閱的認證來登入 Azure 入口網站。
移至您的 Azure 負載測試資源,然後從左窗格中選取 [測試]。
透過下列兩種方式開啟負載測試的建立/更新精靈:
如果您想要建立新的測試,請選取 [+ 建立]> [上傳 JMeter 指令碼]。
從清單中選取現有的測試,然後選取 [編輯]。
在 [負載] 索引標籤上,選取 [私人] 流量模式,然後選取您的虛擬網路和子網路。
如果您的虛擬網路中有多個子網路,請務必選取一個子網路來裝載插入的測試引擎 VM。
重要
請確定您有足夠的權限可管理虛擬網路。 您需要網路參與者角色。
(選擇性) 如果您不想在子網路中部署公用 IP 位址、負載平衡器和網路安全性群組,請核取 [停用公用 IP 部署]。
當您選取此選項時,請確定您有 Azure NAT 閘道 (部分機器翻譯)、Azure 防火牆 (部分機器翻譯) 或網路虛擬設備 (NVA) 等替代機制,以便能路由傳送來自子網路的輸出流量。
檢閱或填入負載測試資訊。 請遵循下列步驟來建立或管理測試。
選取 [檢閱 + 建立],然後選取 [建立] (如果是更新現有的測試,則選取 [套用])。
當負載測試啟動時,Azure 負載測試會在虛擬網路和子網路中插入測試引擎 VM。 測試指令碼現在可以存取虛擬網路中的私人裝載應用程式端點了。
設定 CI/CD 管線的虛擬網路
若要使用虛擬網路設定來設定負載測試,請更新 YAML 測試組態檔。
開啟終端,並使用 Azure CLI 登入您的 Azure 訂用帳戶:
az login az account set --subscription <your-Azure-Subscription-ID>
擷取子網路識別碼,並複製產生的值:
az network vnet subnet show -g <your-resource-group> --vnet-name <your-vnet-name> --name <your-subnet-name> --query id
在慣用的編輯器中開啟 YAML 測試組態檔。
將
subnetId
屬性新增至組態檔,並提供您稍早複製的子網路識別碼:version: v0.1 testName: SampleTest testPlan: SampleTest.jmx description: 'Load test the website home page' engineInstances: 1 subnetId: <your-subnet-id> publicIPDisabled: False
(選擇性) 您可以將
publicIPDisabled
屬性設定為True
。 如需有關 YAML 組態的詳細資訊,請參閱測試組態 YAML 參考。重要
請確定您有足夠的權限可管理虛擬網路。 您需要網路參與者角色。
儲存 YAML 組態檔,並將變更認可至原始程式碼存放庫。
觸發 CI/CD 工作流程之後,負載測試就會啟動,當下即可存取虛擬網路中的私人裝載應用程式端點。
疑難排解
若要針對針對私人端點建立和執行負載測試的問題進行疑難解答,請參閱 如何針對私人端點測試進行疑難解答。
下一步
- 深入了解在虛擬網路中部署 Azure 負載測試的案例。
- 瞭解如何 針對私人端點測試進行疑難解答。