Testen privater Endpunkte durch Bereitstellen von Azure Load Testing in einem virtuellen Azure-Netzwerk
In diesem Artikel erfahren Sie, wie Sie mit Azure Load Testing private Anwendungsendpunkte testen. Sie erstellen eine Azure Load Testing-Ressource und konfigurieren diese so, dass sie in Ihrem virtuellen Netzwerk Last generiert (VNET-Injektion).
Diese Funktionalität ermöglicht folgende Nutzungsszenarios:
- Generieren von Last auf einen Endpunkt, der in einem virtuellen Azure-Netzwerk bereitgestellt wurde
- Generieren von Last auf einen öffentlichen Endpunkt mit Zugriffsbeschränkungen, z. B. eingeschränkten Client-IP-Adressen
- Generieren von Last auf einen lokalen Dienst, der nicht öffentlich zugänglich und über ExpressRoute mit Azure verbunden ist
Unter dem folgenden Link finden Sie weitere Informationen über die Szenarios zum Bereitstellen von Azure Load Testing in einem virtuellen Netzwerk.
Das folgende Diagramm zeigt eine technische Übersicht:
Wenn Sie den Auslastungstest starten, injiziert der Azure Load Testing-Dienst die folgenden Azure-Ressourcen in das virtuelle Netzwerk, das den Anwendungsendpunkt enthält:
- Die Test-Engine-VMs. Diese VMs rufen während des Auslastungstests Ihren Anwendungsendpunkt auf.
- Eine öffentliche IP-Adresse
- Eine Netzwerksicherheitsgruppe (NSG)
- Eine Azure Load Balancer-Instanz
Diese Ressourcen sind kurzlebig und nur während der Ausführung des Auslastungstests vorhanden. Wenn Einschränkungen für die Bereitstellung einer öffentlichen IP-Adresse, eines Azure-Lastenausgleichs oder einer Netzwerksicherheitsgruppe in Ihrem Subnetz gelten, können Sie die Bereitstellung dieser Ressourcen deaktivieren. Weitere Informationen finden Sie unter Konfigurieren des Auslastungstests.
Wenn Sie den Zugriff auf Ihr virtuelles Netzwerk einschränken, müssen Sie Ihr virtuelles Netzwerk so konfigurieren, dass diese Azure Load Testing-VMs und die injizierten VMs miteinander kommunizieren können.
Voraussetzungen
- Ihr Azure-Konto verfügt über die Rolle Network Contributor oder über eine übergeordnete Rolle für die virtuellen Netzwerke. Weitere Informationen zum Überprüfen Ihrer Berechtigungen finden Sie unter Überprüfen des Zugriffs von Benutzer*innen auf Azure-Ressourcen.
- Das Subnetz, das Sie für Azure Load Testing verwenden, muss über genügend nicht zugewiesene IP-Adressen verfügen, um die Auslastungstest-Engines für Ihren Test unterzubringen. Weitere Informationen finden Sie unter Konfigurieren Ihres Tests für hohe Lasten.
- Das Subnetz darf nicht an einen anderen Azure-Dienst delegiert werden. Es darf beispielsweise nicht an Azure Container Instances (ACI) delegiert werden. Weitere Informationen finden Sie unter Subnetzdelegierung.
- Im Subnetz sollte IPv6 nicht aktiviert sein. Azure Load Testing unterstützt keine IPv6-fähigen Subnetze. Weitere Informationen zu IPv6 für Azure Virtual Network
- Azure CLI-Version 2.2.0 oder höher (wenn Sie CI/CD verwenden). Führen Sie
az --version
aus, um die Version zu ermitteln, die auf Ihrem Computer installiert ist. Wenn Sie die Azure CLI installieren oder aktualisieren müssen, finden Sie weitere Informationen unter Installieren der Azure CLI.
Konfigurieren eines virtuellen Netzwerks
Zum Testen privater Endpunkte stellen Sie eine Verbindung zwischen Azure Load Testing und einem virtuellen Azure-Netzwerk her. Das virtuelle Netzwerk sollte mindestens ein Subnetz aufweisen und ausgehenden Datenverkehr an den Azure Load Testing-Dienst zulassen.
Wenn Sie noch kein virtuelles Netzwerk haben, führen Sie die Schritte zum Erstellen eines virtuellen Azure-Netzwerks im Azure-Portal aus.
Wichtig
Das virtuelle Netzwerk muss sich in demselben Abonnement und in derselben Region wie die Auslastungstestressource befinden.
Erstellen eines Subnetzes
Wenn Sie Azure Load Testing in Ihrem virtuellen Netzwerk bereitstellen, empfiehlt es sich, für Azure Load Testing und den Anwendungsendpunkt separate Subnetze zu verwenden. Mit diesem Ansatz können Sie Zugriffsrichtlinien für Netzwerkdatenverkehr speziell für jeden Zweck konfigurieren. Weitere Informationen finden Sie unter Hinzufügen eines Subnetzes zu einem virtuellen Netzwerk.
(Optional) Konfigurieren von Datenverkehrsregeln
Azure Load Testing erfordert, dass die injizierten VMs in Ihrem virtuellen Netzwerk ausgehenden Zugriff auf den Azure Load Testing-Dienst haben. Wenn Sie ein virtuelles Netzwerk erstellen, ist ausgehender Zugriff bereits standardmäßig zulässig.
Wenn Sie den Zugriff auf Ihr virtuelles Netzwerk mit einer Netzwerksicherheitsgruppe weiter einschränken möchten oder bereits über eine Netzwerksicherheitsgruppe verfügen, müssen Sie eine Ausgangssicherheitsregel konfigurieren, um Datenverkehr von den Test-Engine-VMs an den Azure Load Testing-Dienst zuzulassen.
So konfigurieren Sie den ausgehenden Zugriff für Azure Load Testing
Melden Sie sich beim Azure-Portal an.
Navigieren Sie zur Netzwerksicherheitsgruppe.
Wenn Sie noch keine NSG verwenden, führen Sie die folgenden Schritte aus, um eine Netzwerksicherheitsgruppe zu erstellen.
Erstellen Sie die NSG in derselben Region wie Ihr virtuelles Netzwerk, und ordnen Sie sie dann Ihrem Subnetz zu.
Klicken Sie in der linken Navigationsleiste auf Sicherheitsregeln für ausgehenden Datenverkehr.
Klicken Sie auf +Hinzufügen, um eine neue Sicherheitsregel für ausgehenden Datenverkehr hinzuzufügen. Geben Sie die folgenden Informationen ein, um eine neue Regel zu erstellen.
Feld Wert Quelle Beliebige Quellportbereiche * Ziel Beliebige Zielportbereiche * Name azure-load-testing-outbound Beschreibung Wird für verschiedene Vorgänge verwendet, die an der Orchestrierung eines Auslastungstests beteiligt sind Wählen Sie Hinzufügen aus, um der Netzwerksicherheitsgruppe die Ausgangssicherheitsregel hinzuzufügen.
Konfigurieren des Skripts für den Auslastungstest
Die Test-Engine-VMs, die das JMeter-Skript ausführen, werden in das virtuelle Netzwerk injiziert, das den Anwendungsendpunkt enthält. Sie können in der JMX-Datei nun mithilfe der privaten IP-Adresse oder der Namensauflösung in Ihrem Netzwerk direkt auf den Endpunkt verweisen.
Die JMX-Datei kann beispielsweise für einen Endpunkt mit der IP-Adresse 10.179.0.7 in einem virtuellen Netzwerk mit Subnetzbereich 10.179.0.0/18 die folgenden Informationen enthalten:
<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>
So konfigurieren Sie den Auslastungstest
Um private gehostete Endpunkte in Ihren Auslastungstest einzuschließen, müssen Sie die Einstellungen des virtuellen Netzwerks für den Auslastungstest konfigurieren. Sie können die VNet-Einstellungen im Azure-Portal konfigurieren oder in der YAML-Testkonfigurationsdatei für CI/CD-Pipelines angeben.
Wichtig
Wenn Sie Azure Load Testing in einem virtuellen Netzwerk bereitstellen, fallen zusätzliche Gebühren an. Azure Load Testing stellt eine Azure Load Balancer-Instanz und eine öffentliche IP-Adresse in Ihrem Abonnement bereit. Möglicherweise fallen für den generierten Datenverkehr Kosten an. Weitere Informationen finden Sie unter Preise für virtuelle Netzwerke.
Konfigurieren des virtuellen Netzwerks im Azure-Portal
Sie können die VNet-Konfigurationseinstellungen im Assistenten zum Erstellen/Aktualisieren von Auslastungstests angeben.
Melden Sie sich mit den Anmeldeinformationen für Ihr Azure-Abonnement beim Azure-Portal an.
Navigieren Sie zu Ihrer Azure Load Testing-Ressource, und wählen Sie im linken Bereich Tests aus.
Sie haben zwei Möglichkeiten,den Assistenten zum Erstellen/Aktualisieren von Auslastungstests zu öffnen:
Wählen Sie + Erstellen > JMeter-Skript hochladen aus, wenn Sie einen neuen Test erstellen möchten.
Wählen Sie einen vorhandenen Test in der Liste aus, und wählen Sie dann Bearbeiten aus.
Wählen Sie auf der Registerkarte Last den Datenverkehrsmodus Private aus, und wählen Sie dann Ihr virtuelles Netzwerk und Subnetz aus.
Wenn Sie mehrere Subnetze in Ihrem virtuellen Netzwerk verwenden, stellen Sie sicher, dass das Subnetz ausgewählt wird, das die injizierten Testmodul-VMs hostet.
Wichtig
Stellen Sie sicher, dass Sie über ausreichende Berechtigungen zum Verwalten virtueller Netzwerke verfügen. Wählen Sie die Rolle Netzwerkmitwirkender aus.
(Optional) Aktivieren Sie Bereitstellung öffentlicher IP-Adressen deaktivieren, wenn Sie keine öffentliche IP-Adresse, keinen Lastenausgleich und keine Netzwerksicherheitsgruppe in Ihrem Subnetz bereitstellen möchten.
Stellen Sie bei Auswahl dieser Option sicher, dass es einen alternativen Mechanismus wie Azure NAT Gateway, Azure Firewall oder ein virtuelles Netzwerkgerät (Network Virtual Appliance, NVA) gibt, um das Routing von ausgehendem Datenverkehr vom Subnetz zu ermöglichen.
Überprüfen Sie die Auslastungstestinformationen, oder füllen Sie sie aus. Führen Sie folgende Schritte aus, um einen Test zu erstellen oder zu verwalten.
Wählen Sie Überprüfen und erstellen und dann Erstellen aus (oder Anwenden, wenn Sie einen vorhandenen Test aktualisieren).
Wenn der Auslastungstest gestartet wird, fügt Azure Load Testing die Testmodul-VMs in Ihr virtuelles Netzwerk und Subnetz ein. Das Testskript kann nun auf den privat gehosteten Anwendungsendpunkt in Ihrem virtuellen Netzwerk zugreifen.
Konfigurieren des virtuellen Netzwerks für CI/CD-Pipelines
Um den Auslastungstest mit den Einstellungen Ihres virtuellen Netzwerks zu konfigurieren, aktualisieren Sie die YAML-Testkonfigurationsdatei.
Öffnen Sie ein Terminal, und verwenden Sie die Azure CLI, um sich bei Ihrem Azure-Abonnement anzumelden:
az login az account set --subscription <your-Azure-Subscription-ID>
Rufen Sie die Subnetz-ID ab, und kopieren Sie den abgerufenen Wert:
az network vnet subnet show -g <your-resource-group> --vnet-name <your-vnet-name> --name <your-subnet-name> --query id
Öffnen Sie Ihre YAML-Testkonfigurationsdatei in Ihrem bevorzugten Editor.
Fügen Sie die
subnetId
-Eigenschaft zur Konfigurationsdatei hinzu, und geben Sie die Subnetz-ID an, die Sie zuvor kopiert haben:version: v0.1 testName: SampleTest testPlan: SampleTest.jmx description: 'Load test the website home page' engineInstances: 1 subnetId: <your-subnet-id> publicIPDisabled: False
Optional können Sie die
publicIPDisabled
-Eigenschaft aufTrue
festlegen. Weitere Informationen zur YAML-Konfiguration finden Sie in der YAML-Referenz zur Testkonfiguration.Wichtig
Stellen Sie sicher, dass Sie über ausreichende Berechtigungen zum Verwalten virtueller Netzwerke verfügen. Wählen Sie die Rolle Netzwerkmitwirkender aus.
Speichern Sie die YAML-Konfigurationsdatei, und committen Sie Ihre Änderungen an das Quellcoderepository.
Nachdem der CI/CD-Workflow ausgelöst wurde, startet Ihr Auslastungstest und kann jetzt auf den privat gehosteten Anwendungsendpunkt in Ihrem VNet zugreifen.
Problembehandlung
Informationen zum Behandeln von Problemen beim Erstellen und Ausführen von Auslastungstests für private Endpunkte finden Sie unter Problembehandlung bei privaten Endpunkttests.
Nächste Schritte
- Unter dem folgenden Link finden Sie weitere Informationen über die Szenarios zum Bereitstellen von Azure Load Testing in einem virtuellen Netzwerk.
- Hier erfahren Sie, wie Sie Probleme bei privaten Endpunkttests beheben.