Was ist Azure Load Testing?

Azure Load Testing ist ein vollständig verwalteter Auslastungstestdienst, mit dem Sie eine hohe Auslastung generieren können. Der Dienst simuliert Datenverkehr für Ihre Anwendungen, unabhängig davon, wo sie gehostet werden. Fachkräfte in der Entwicklung und Qualitätssicherung sowie Tester*innen können damit die Leistung, Skalierbarkeit oder Kapazität einer Anwendung optimieren.

Erstellen Sie schnell einen Auslastungstest für Ihre Webanwendung mithilfe einer URL und ohne vorherige Kenntnisse von Testtools. Azure Load Testing abstrahiert Komplexität und Infrastruktur, um Ihre Auslastungstests nach Maß durchzuführen.

Für erweiterte Auslastungstests können Sie auch einen Auslastungstest erstellen, indem Sie ein Testskript hochladen. Azure Load Testing unterstützt die Ausführung von Apache JMeter-basierten Tests oder Locust-basierten Tests. Ihr Testplan kann beispielsweise aus mehreren Anwendungsanforderungen bestehen, Sie möchten Nicht-HTTP-Endpunkte aufrufen, oder Sie verwenden Eingabedaten und Parameter, um den Test dynamischer zu gestalten.

Wenn Ihre Anwendung auf Azure gehostet wird, sammelt Azure Load Testing detaillierte Ressourcenmetriken, die Ihnen helfen, Leistungsengpässe bei Ihren Azure-Anwendungskomponenten zu erkennen.

Um Regressionen in der Anwendungsleistung frühzeitig zu erfassen, fügen Sie Ihren Auslastungstest zu Ihrem Continuous Integration und Continuous Deployment (CI/CD)-Workflow hinzu. Nutzen Sie die Kriterien für das Scheitern von Tests, um die Qualitätsanforderungen Ihrer Anwendung zu definieren und zu validieren.

Mit Azure Load Testing können Sie private Anwendungsendpunkte oder Anwendungen, die Sie Lokal hosten, testen. Weitere Informationen finden Sie unter Szenarien zum Bereitstellen von Azure Load Testing in einem virtuellen Netzwerk.

Das folgende Diagramm zeigt einen Überblick über die Architektur von Azure Load Testing.

Diagramm, das die Architektur von Azure Load Testing zeigt.

Hinweis

In dieser Übersichtsabbildung ist dargestellt, wie Azure Load Testing mit Azure Monitor Metriken für App-Komponenten erfasst. Erfahren Sie mehr über die unterstützten Azure-Ressourcentypen.

Erfahren Sie mehr über die wichtigsten Konzepte bei Azure Load Testing.

Verwendungsszenarios

Azure Load Testing kann die Apache JMeter- oder Locust-Testframeworks verwenden und eine Vielzahl von Anwendungstypen und Kommunikationsprotokollen unterstützen. Die folgende Liste enthält Beispiele für unterstützte Anwendungs- oder Endpunkttypen:

  • Webanwendungen mit HTTP oder HTTPS
  • REST-APIs
  • Datenbanken über JDBC
  • TCP-basierte Endpunkte

Durch die Verwendung von JMeter-Plugins in Ihrem Testskript für JMeter können Sie mehr Anwendungstypen einem Auslastungstest unterziehen.

Mit der Schnelltest-Funktion können Sie einen einzelnen URL-basierten HTTP-Endpunkt testen. Wenn Sie ein JMeter-Skript hochladen, können Sie alle von JMeter unterstützten Kommunikationsprotokolle verwenden.

Azure Load Testing unterstützt derzeit keine anderen Testframeworks als Apache JMeter und Locust.

Erkennen von Leistungsengpässen mithilfe von Tests für hohe Auslastung

Leistungsprobleme bleiben häufig unerkannt, bis eine Anwendung ausgelastet ist. Sie können im Azure-Portal einen Test für hohe Auslastung starten, um schneller zu erfahren, wie sich Ihre Anwendung bei hoher Auslastung verhält. Während der Test ausgeführt wird, stellt das Azure Load Testing-Dashboard ein Liveupdate der client- und serverseitigen Metriken zur Verfügung.

Nach Abschluss des Auslastungstests können Sie das Dashboard verwenden, um die Testergebnisse zu analysieren und Leistungsengpässe zu erkennen. Für in Azure gehostete Anwendungen werden im Dashboard detaillierte Ressourcenmetriken der Azure-Anwendungskomponenten angezeigt. Erste Schritte mit einem Tutorial, um Leistungsengpässe für in Azure gehostete Anwendungen zu identifizieren.

Azure Load Testing erfasst einen Verlauf der Testläufe und ermöglicht es Ihnen, mehrere Läufe visuell zu vergleichen, um Leistungsregressionen über einen längeren Zeitraum zu erkennen.

Sie können die Testergebnisse auch für die Analyse in einem Drittanbietertool herunterladen.

Ermöglichen von automatisierten Auslastungstests

Sie können Azure Load Testing an sinnvollen Punkten im Lebenszyklus der Entwicklung in Ihre CI/CD-Pipeline integrieren. So können Sie beispielsweise festlegen, dass zur Überprüfung eines Release Candidate-Builds am Ende jedes Sprints oder in einer Stagingumgebung automatisch ein Auslastungstest ausgeführt wird.

Beginnen Sie mit dem Hinzufügen von Auslastungstests zu Ihrem CI/CD-Workflow, um schnell die Leistungsverschlechterung Ihrer Anwendung unter Last zu identifizieren.

Geben Sie in der Testkonfiguration Fehlerkriterien für den Test an, um Anwendungsleistungs- oder Stabilitätsregressionen früh im Entwicklungszyklus abzufangen. Erhalten Sie z. B. Warnungen, wenn die durchschnittliche Antwortzeit oder die Anzahl der Fehler einen bestimmten Schwellenwert überschreitet.

Azure Load Testing beendet einen automatisierten Auslastungstest als Reaktion auf bestimmte Fehlerbedingungen automatisch. Sie können stattdessen auch den AutoStop-Listener in Ihrem Apache JMeter-Skript verwenden. Das automatische Beenden schützt Sie davor, dass Tests, bei denen Fehler auftreten, weitere Kosten verursachen, z. B. aufgrund einer falsch konfigurierten Endpunkt-URL. Erfahren Sie, wie Sie den automatischen Stopp für Ihren Auslastungstest konfigurieren.

Sie können Azure Load Testing aus Azure Pipelines oder GitHub Actions-Workflows auslösen oder die Azure CLI verwenden, um in andere CI-Tools zu integrieren.

Wie funktioniert Azure Load Testing?

Azure Load Testing verwendet Apache JMeter oder Locust zum Ausführen von Auslastungstests. Sie können Apache JMeter-Plug-Ins von https://jmeter-plugins.org verwenden oder Ihren eigenen Plug-In-Code hochladen. Azure Load Testing unterstützt alle Kommunikationsprotokolle, die JMeter unterstützt. Verwenden Sie beispielsweise Azure Load Testing, um teste eine Datenbankverbindung oder Nachrichtenwarteschlange zu laden. Erfahren Sie mehr über die unterstützte Apache JMeter-Funktionalität.

Die Test-Engines von Azure Load Testing abstrahieren die erforderliche Infrastruktur für die Durchführung eines Auslastungstests bei hoher Auslastung. Jede Test-Engine-Instanz führt Ihr Testskript aus, um eine große Anzahl virtueller Benutzer zu simulieren, die gleichzeitig auf Ihre Anwendungsendpunkte zugreifen. Wenn Sie einen Auslastungstest auf der Grundlage einer URL erstellen (Schnelltest), generiert Azure Load Testing automatisch ein Testskript für Sie. Wenn Sie den Auslastungstest aufskalieren möchten, können Sie die Anzahl der Test-Engines konfigurieren.

Sie können die Anwendung unter Last überall hosten: in Azure, vor Ort oder in anderen Clouds. Um einen Auslastungstest für Dienste durchzuführen, die keinen öffentlichen Endpunkt haben, stellen Sie Azure Load Testing in einem virtuellen Netzwerk bereit.

Während des Auslastungstests sammelt Azure Load Testing die folgenden Ressourcenmetriken und zeigt sie in einem Dashboard an:

  • Clientseitige Metriken enthalten Details, die von der Test-Engine gemeldet werden. Zu diesen Details gehören die Anzahl der virtuellen Benutzer, die Antwortzeit auf Anforderungen oder die Anzahl der Anforderungen pro Sekunde.

  • Serverseitige Metriken enthalten Informationen zu Ihren Azure-Anwendungskomponenten. Azure Load Testing ist zum Erfassen von Details aus den Azure-Diensten in Azure Monitor sowie Application Insights und Container Insights integriert. Je nach Diensttyp sind verschiedene Metriken verfügbar. Metriken können beispielsweise für die Anzahl der Lesevorgänge in Datenbanken, den Typ der HTTP-Antworten oder den Verbrauch von Containerressourcen verwendet werden.

Azure Load Testing berücksichtigt automatisch die bewährten Methoden für Azure-Netzwerke, sodass Ihre Tests sicher und zuverlässig ausgeführt werden. Auslastungstests werden automatisch beendet, wenn die Anwendungsendpunkte oder Azure-Komponenten mit der Drosselung von Anforderungen beginnen.

Der Dienst verschlüsselt automatisch alle in Ihrer Auslastungstest-Ressource gespeicherten Daten mit von Microsoft verwalteten Schlüsseln (dienstverwaltete Schlüssel). Zu diesen Daten gehören zum Beispiel Ihr Apache JMeter- oder Locust Testskript, Konfigurationsdateien und mehr. Alternativ können Sie den Dienst auch für die Verwendung von kundenseitig verwalteten Schlüsseln konfigurieren.

Data Residency in der Region

Azure Load Testing speichert oder verarbeitet keine Kundendaten außerhalb der Region, in der Sie die Dienstinstanz bereitstellen.

Einstieg in die Verwendung von Azure Load Testing: