View a markdown version of this page

Erstellen Sie ein Testszenario - Verteilte Lasttests auf AWS

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Erstellen Sie ein Testszenario

Die Erstellung eines Testszenarios umfasst vier Hauptschritte: Konfiguration der allgemeinen Einstellungen, Definition des Szenarios, Gestaltung von Verkehrsmustern und Überprüfung Ihrer Konfiguration.

Schritt 1: Allgemeine Einstellungen

Konfigurieren Sie die grundlegenden Parameter für Ihren Lasttest, einschließlich des Testnamens, der Beschreibung und der allgemeinen Konfigurationsoptionen.

Identifizierung des Tests

  • Testname (erforderlich) — Ein beschreibender Name für Ihr Testszenario

  • Testbeschreibung (erforderlich) — Zusätzliche Details zum Testzweck und zur Konfiguration

  • Tags (optional) — Fügen Sie bis zu 5 Tags hinzu, um Ihre Testszenarien zu kategorisieren und zu organisieren

Optionen für die Terminplanung

Konfigurieren Sie, wann der Test ausgeführt werden soll:

  • Jetzt ausführen — Führt den Test unmittelbar nach der Erstellung aus.

  • Einmal ausführen — Planen Sie den Test so, dass er an einem bestimmten Datum und zu einer bestimmten Uhrzeit ausgeführt wird.

  • Nach einem Zeitplan ausführen — Verwenden Sie die cron-basierte Planung, um Tests automatisch in regelmäßigen Intervallen auszuführen. Sie können aus gängigen Mustern (stündlich, täglich, wöchentlich) wählen oder einen benutzerdefinierten Cron-Ausdruck definieren. Einzelheiten zum akzeptierten Cron-Format, den unterstützten Mustern und Einschränkungen finden Sie in der Cron-Ausdrucksreferenz im Entwicklerhandbuch.

Arbeitsablauf planen

Wenn Sie einen Test planen, findet der folgende Workflow statt:

  • Die Zeitplanparameter werden über Amazon API Gateway an die API der Lösung gesendet.

  • Die API übergibt die Parameter an eine Lambda-Funktion, die einen Amazon EventBridge Scheduler-Zeitplan erstellt, der so konfiguriert ist, dass er am angegebenen Datum ausgeführt wird.

  • Bei einmaligen Tests (Run Once) ruft der EventBridge Scheduler-Zeitplan die api-services Lambda-Funktion zum angegebenen Datum und zur angegebenen Uhrzeit auf, wodurch der Test ausgeführt wird.

  • Bei wiederkehrenden Tests (Run on a Schedule) ruft der EventBridge Scheduler-Zeitplan die api-services Lambda-Funktion sofort und in der durch den Cron- oder Rate-Ausdruck definierten Schrittfrequenz bis zum Ablaufdatum auf.

Live-Daten

Aktivieren Sie das Kontrollkästchen Live-Daten einbeziehen, um Echtzeitmetriken anzuzeigen, während Ihr Test ausgeführt wird. Wenn diese Option aktiviert ist, können Sie Folgendes überwachen:

  • Durchschnittliche Antwortzeit.

  • Anzahl virtueller Benutzer.

  • Erfolgreiche Anfragen zählen.

  • Anzahl fehlgeschlagener Anfragen.

Die Live-Datenfunktion ermöglicht Echtzeitdiagramme mit Daten, die in Intervallen von einer Sekunde aggregiert werden. Weitere Informationen finden Sie unter Überwachung mit Live-Daten.

Schritt 2: Szenariokonfiguration

Definieren Sie das spezifische Testszenario und wählen Sie Ihr bevorzugtes Test-Framework aus.

Auswahl des Testtyps

Wählen Sie die Art des Belastungstests, den Sie durchführen möchten:

  • Einzelner HTTP-Endpunkt — Testen Sie einen einzelnen API-Endpunkt oder eine Webseite mit einfacher Konfiguration.

  • JMeter - Laden Sie JMeter-Testskripte (.jmx-Dateien oder .zip-Archive) hoch.

  • K6 - Laden Sie K6-Testskripte (.js-Dateien oder .zip-Archive) hoch.

  • Locust - Laden Sie Locust-Testskripte (.py-Dateien oder .zip-Archive) hoch.

Anmerkung

Alle vier Testtypen basieren auf Komponenten von Drittanbietern. Die Lösung führt Tests über das Taurus Test Automation Framework durch, das je nach Testtyp JMeter, K6 oder Locust ausführt. Einzel-HTTP-Endpoint-Tests werden in einen JMeter-Testplan umgewandelt und vom mitgelieferten Apache JMeter ausgeführt. Bevor Sie einen Test erstellen, sollten Sie die Test-Frameworks auf Sicherheitsaspekte, Lizenzinformationen und Third-party Patching-Optionen überprüfen.

Konfiguration des HTTP-Endpunkts

Wenn „Single HTTP Endpoint“ ausgewählt ist, generiert die Lösung anhand Ihrer Konfiguration einen JMeter-Testplan und führt ihn mit der mitgelieferten Apache JMeter-Binärdatei aus. Konfigurieren Sie diese Einstellungen:

HTTP-Endpunkt (erforderlich)

Geben Sie die vollständige URL des Endpunkts ein, den Sie testen möchten. Beispiel, https://api.example.com/users. Stellen Sie sicher, dass der Endpunkt von der AWS-Infrastruktur aus zugänglich ist.

HTTP-Methode (erforderlich)

Wählen Sie die HTTP-Methode für Ihre Anfragen aus. Der Standardwert ist GET. Zu den weiteren Optionen gehören POSTPUT,DELETE,PATCH,HEAD, undOPTIONS.

Header der Anfrage (optional)

Fügen Sie Ihren Anfragen benutzerdefinierte HTTP-Header hinzu. Allgemeine Beispiele sind:

  • Content-Type: application/json

  • Authorization: Bearer <token>

  • User-Agent: LoadTest/1.0

    Wählen Sie Header hinzufügen, um mehrere Header einzubeziehen.

Nutzlast des Körpers (optional)

Fügen Sie den Inhalt des Anforderungstexts für POST- oder PUT-Anfragen hinzu. Unterstützt JSON-, XML- oder Nur-Text-Formate. Beispiel: {"userId": 123, "action": "test"}.

Testen Sie Framework-Skripte

Wenn Sie JMeter, K6 oder Locust verwenden, laden Sie Ihre Testskriptdatei oder ein ZIP-Archiv hoch, das Ihr Testskript und unterstützende Dateien enthält. Für JMeter können Sie benutzerdefinierte Plugins in einen /plugins Ordner innerhalb Ihres ZIP-Archivs aufnehmen.

Wichtig

Ihr Testskript (JMeter, K6 oder Locust) kann zwar Parallelität (virtuelle Benutzer), Transaktionsraten (TPS), Anlaufzeiten und andere Ladeparameter definieren, aber die Lösung überschreibt diese Konfigurationen mit den Werten, die Sie während der Testerstellung im Traffic Shape-Bildschirm angeben. Die Traffic Shape-Konfiguration steuert die Anzahl der Aufgaben, die Parallelität (virtuelle Benutzer pro Aufgabe), die Dauer des Hochlaufs und die Haltedauer für die Testausführung.

Schritt 3: Traffic Shape

Konfigurieren Sie, wie der Verkehr während Ihres Tests verteilt werden soll, einschließlich der Unterstützung mehrerer Regionen.

Multi-region Konfiguration des Datenverkehrs

Wählen Sie eine oder mehrere AWS-Regionen aus, um Ihren Belastungstest geografisch zu verteilen. Konfigurieren Sie für jede ausgewählte Region:

Anzahl der Aufgaben

Die Anzahl der Container (Aufgaben), die im Fargate-Cluster für das Testszenario gestartet werden. Zusätzliche Aufgaben werden nicht mehr erstellt, sobald das Konto das Limit „Fargate-Ressource wurde erreicht“ erreicht hat.

Concurrency (Nebenläufigkeit)

Die Anzahl der gleichzeitig generierten virtuellen Benutzer pro Aufgabe. Das empfohlene Limit basiert auf den Standardeinstellungen von 2 vCPUs pro Aufgabe. Die Parallelität wird durch CPU- und Speicherressourcen begrenzt.

Ermitteln Sie die Anzahl der Benutzer

Die Anzahl der Benutzer, die ein Container für einen Test unterstützen kann, kann bestimmt werden, indem die Anzahl der Benutzer schrittweise erhöht und die Leistung in Amazon überwacht wird CloudWatch. Sobald Sie feststellen, dass die CPU- und Speicherleistung an ihre Grenzen stößt, haben Sie die maximale Anzahl von Benutzern erreicht, die ein Container für diesen Test in seiner Standardkonfiguration unterstützen kann (2 vCPU und 4 GB Arbeitsspeicher).

Der Kalibrierungsprozess

Anhand des folgenden Beispiels können Sie mit der Festlegung der Grenzwerte für gleichzeitige Benutzer für Ihren Test beginnen:

  1. Erstellen Sie einen Test mit nicht mehr als 200 Benutzern.

  2. Überwachen Sie während der Ausführung des Tests die CPU und den Speicher mithilfe der CloudWatch Konsole:

    1. Wählen Sie im Navigationsbereich unter Container Insights die Option Performance Monitoring aus.

    2. Wählen Sie auf der Seite zur Leistungsüberwachung im linken Dropdownmenü die Option ECS-Cluster aus.

    3. Wählen Sie im rechten Drop-down-Menü Ihren Amazon Elastic Container Service (Amazon ECS) -Cluster aus.

  3. Achten Sie bei der Überwachung auf die CPU und den Arbeitsspeicher. Wenn die CPU nicht über 75% oder der Arbeitsspeicher nicht über 85% liegt (einmalige Spitzenwerte ignorieren), können Sie einen weiteren Test mit einer höheren Benutzerzahl durchführen.

Wiederholen Sie die Schritte 1 bis 3, wenn der Test die Ressourcengrenzen nicht überschritten hat. Optional können Sie die Container-Ressourcen erhöhen, um eine höhere Anzahl gleichzeitiger Benutzer zu ermöglichen. Dies führt jedoch zu höheren Kosten. Einzelheiten finden Sie im Entwicklerhandbuch.

Anmerkung

Um genaue Ergebnisse zu erzielen, sollten Sie bei der Festlegung der Grenzwerte für gleichzeitige Benutzer jeweils nur einen Test durchführen. Alle Tests verwenden denselben Cluster, und CloudWatch Container Insights aggregiert die Leistungsdaten auf der Grundlage des Clusters. Dies führt dazu, dass beide Tests gleichzeitig an CloudWatch Container Insights gemeldet werden, was zu ungenauen Kennzahlen zur Ressourcennutzung für einen einzelnen Test führt.

Weitere Informationen zur Kalibrierung von Benutzern pro Engine finden Sie in der Dokumentation unter Kalibrierung eines Taurus-Tests. BlazeMeter

Anmerkung

Die Lösung zeigt Informationen zur verfügbaren Kapazität für jede Region an und hilft Ihnen so, Ihre Testkonfiguration innerhalb der verfügbaren Grenzen zu planen.

Tabelle der verfügbaren Aufgaben

In der Tabelle der verfügbaren Aufgaben wird die Ressourcenverfügbarkeit für jede ausgewählte Region angezeigt:

  • Region — Der Name der AWS-Region.

  • vCPUs pro Aufgabe — Die Anzahl der virtuellen CPUs, die jeder Aufgabe zugewiesen sind (Standard: 2).

  • DLT-Aufgabenlimit — Die maximale Anzahl von Aufgaben, die auf der Grundlage des Fargate-On-Demand-vCPU-Kontingents Ihres Kontos erstellt werden können. Neue Konten haben in der Regel ein niedrigeres Kontingent. Überprüfen Sie Ihr aktuelles Limit in der Service-Kontingents-Konsole und fordern Sie bei Bedarf eine Erhöhung an.

  • Verfügbare DLT-Aufgaben — Die aktuelle Anzahl der in der Region verfügbaren Aufgaben, berechnet als Ihr DLT-Aufgabenlimit abzüglich der vCPUs, die bereits durch die Ausführung von Fargate-Aufgaben verwendet werden.

Informationen zur Erhöhung der Anzahl verfügbarer Aufgaben oder vCPUs pro Aufgabe finden Sie im Entwicklerhandbuch.

Dauer des Tests

Definieren Sie, wie lange Ihr Auslastungstest laufen soll:

Hochfahren

Die Zeit bis zum Erreichen der Zielparallelität. Die Auslastung steigt in diesem Zeitraum schrittweise von 0 auf den konfigurierten Parallelitätsgrad.

Halten Sie für

Die Dauer, für die die Ziellast aufrechterhalten werden soll. Der Test wird für diesen Zeitraum mit voller Parallelität fortgesetzt.

Schritt 4: Überprüfen und Erstellen

Überprüfen Sie alle Ihre Konfigurationen, bevor Sie das Testszenario erstellen. Überprüfen:

  • Allgemeine Einstellungen (Name, Beschreibung, Zeitplan).

  • Szenariokonfiguration (Testtyp, Endpunkt oder Skript).

  • Form des Datenverkehrs (Aufgaben, Benutzer, Dauer, Regionen).

Wählen Sie nach der Überprüfung Create aus, um Ihr Testszenario zu speichern.

Testszenarien verwalten

Nachdem Sie ein Testszenario erstellt haben, können Sie:

  • Bearbeiten — Ändern Sie die Testkonfiguration. Häufige Anwendungsfälle umfassen:

    • Verfeinerung der Verkehrsform, um die gewünschte Transaktionsrate zu erreichen.

  • Kopieren — Duplizieren Sie ein vorhandenes Testszenario, um Varianten zu erstellen. Häufige Anwendungsfälle umfassen:

    • Endpunkte aktualisieren oder headers/body Parameter hinzufügen.

    • Hinzufügen oder Ändern von Testskripten.

  • Löschen — Entfernen Sie Testszenarien, die Sie nicht mehr benötigen.