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.
Backend
Das Backend besteht aus einer Container-Image-Pipeline und einer Load-Test-Engine, mit der Sie die Last für die Tests generieren. Sie interagieren mit dem Backend über das Frontend. Darüber hinaus werden Amazon ECS on AWS Fargate-Aufgaben, die für jeden Test gestartet werden, mit einer eindeutigen Test-ID (ID) gekennzeichnet. Diese Test-ID-Tags können verwendet werden, um Ihnen bei der Überwachung der Kosten für diese Lösung zu helfen. Weitere Informationen finden Sie im Abschnitt User-Defined Cost Allocation Tags im AWS Billing and Cost Management-Benutzerhandbuch.
Container-Image-Pipeline
Diese Lösung verwendet Container-Images, die mit Amazon Linux 2023
Welches Image eine Aufgabe verwendet, hängt vom Traffic-Shape-Modus des Tests ab. Weitere Informationen zu den Modi finden Sie unter Traffic-Shape-Modi.
-
Im Standardmodus wird ein einzelnes Image verwendet, auf dem das Taurus
Load Testing Framework installiert ist. Taurus ist ein Open-Source-Framework zur Testautomatisierung, das JMeter, k6, Locust und andere Testtools unterstützt. Es wendet die Ladeparameter, die Sie in der Konsole festgelegt haben, auf das Framework an, das der Test verwendet. -
Der native Modus verwendet ein dediziertes Image für jedes Testframework (JMeter, k6 oder Locust), ohne Taurus. Jedes Bild führt sein Framework direkt mit Ihrem Skript aus.
Weitere Informationen finden Sie im Abschnitt zur Anpassung des Container-Images in diesem Handbuch.
Testen der Framework-Bereitstellung
Die drei unterstützten Testframeworks werden zu verschiedenen Zeitpunkten im Lebenszyklus der Lösung bereitgestellt, um ein ausgewogenes Verhältnis zwischen Bildgröße und Versionsflexibilität zu gewährleisten:
-
Apache JMeter — Wird während der Stack-Bereitstellung in einem S3-Bucket in Ihrem Konto bereitgestellt und zur Testlaufzeit extrahiert, wenn ein JMeter- oder Simple HTTP Endpoint-Test ausgeführt wird.
-
Grafana k6 — Direkt vom Framework-Anbieter heruntergeladen und zur Testlaufzeit extrahiert, nur wenn ein k6-Test ausgeführt wird.
-
Locust — Wird zur Build-Zeit im Container-Image installiert und bleibt inaktiv, bis ein Locust-Test ausgeführt wird.
Die Bereitstellung funktioniert in beiden Traffic-Shape-Modi auf die gleiche Weise. Die Images im einheitlichen Modus erhalten jedes Framework zu demselben Zeitpunkt im Lebenszyklus wie das Image im Standardmodus. Die unten aufgeführten Netzwerk- und Bereitstellungsanforderungen gelten daher für beide.
Anmerkung
k6 erfordert zur Testlaufzeit einen ausgehenden Netzwerkzugriff auf die Grafana k6-Version. Eingeschränkter Ausgang führt dazu, dass k6-Tests beim Herunterladen fehlschlagen.
Infrastruktur testen
Zusätzlich zur CloudFormation Hauptvorlage bietet die Lösung eine regionale Vorlage, mit der die erforderlichen Ressourcen für die Ausführung von Tests in mehreren Regionen gestartet werden können. Die Lösung speichert diese Vorlage in Amazon S3 und stellt in der Webkonsole einen Link dazu bereit. Jeder regionale Stack umfasst eine VPC, einen AWS Fargate-Cluster und eine Lambda-Funktion zur Verarbeitung von Live-Daten.
Weitere Informationen zur Bereitstellung der Testinfrastruktur in weiteren Regionen finden Sie im Abschnitt „Multi-Region Bereitstellung“ dieses Handbuchs.
Testmodul auslasten
Die Distributed Load Testing-Lösung verwendet Amazon Elastic Container Service (Amazon ECS) und AWS Fargate, um Tausende von gleichzeitigen Benutzern in mehreren Regionen zu simulieren und HTTP-Anfragen mit einer kontinuierlichen Geschwindigkeit zu generieren.
Sie definieren die Testparameter mithilfe der mitgelieferten Webkonsole. Die Lösung verwendet diese Parameter, um ein JSON-Testszenario zu generieren und es in Amazon S3 zu speichern. Weitere Informationen zu Testskripten und Testparametern finden Sie unter Testtypen in diesem Abschnitt.
Eine AWS Step Functions-Zustandsmaschine führt Amazon ECS-Aufgaben in einem AWS Fargate-Cluster aus und überwacht sie. Die AWS Step Functions-Zustandsmaschine umfasst eine ECR-Checker-AWS-Lambda-Funktion, eine AWS-Lambda-Funktion zur Aufgabenstatusprüfung, eine AWS-Lambda-Funktion für Task-Runner, eine AWS-Lambda-Funktion zum Abbrechen von Aufgaben und eine AWS Lambda-Funktion mit Ergebnisparser. Weitere Informationen zum Workflow finden Sie im Abschnitt zum Testausführungs-Workflow in diesem Handbuch. Weitere Informationen zu Testergebnissen finden Sie im Abschnitt „Testergebnisse untersuchen“ in diesem Handbuch. Weitere Informationen zum Ablauf der Teststornierung finden Sie im Abschnitt Abbrechen eines Tests in diesem Handbuch.
Wenn Sie Live-Daten auswählen, initiiert die Lösung in jeder Region eine Lambda-Funktion für Echtzeitdaten-Publisher anhand der CloudWatch Protokolle, die den Fargate-Aufgaben in dieser Region entsprechen. Die Lösung verarbeitet und veröffentlicht dann die Daten zu einem Thema in AWS IoT Core in der Region, in der Sie den Haupt-Stack gestartet haben. Weitere Informationen finden Sie im Abschnitt Überwachung mit Live-Daten in diesem Handbuch.