Der Zweck dieses Artikels besteht darin, die AWS-Umgebung und ihre Funktionen, Funktionalitäten zu erläutern und auch Best Practices bei der Arbeit mit AWS zu erläutern, insbesondere AWS-Auslastungstests und autoscaling. Wir werden auch AWS-Auslastungstests mit der Funktionsweise von LoadView vergleichen und sind viel einfacher zu verwenden als andere Tools und Lösungen auf dem Markt.
JMeter Lasttests mit LoadView

Verteilte Auslastungstests auf AWS

Verteilte Lasttests auf AWS, einer Lösung, die Tausende von gleichzeitigen Verbindungen zu einem einzigen Endpunkt simuliert, werden erläutert. Es ist ein sehr nützliches Werkzeug für alle, die ihre Anwendungsentwicklung und -leistung iterieren.

Was wird genau getestet?

Stellen Sie sich vor, Sie sind ein Entwickler und Haben die größte Anwendung der Welt erstellt (oder vielleicht ist es die größte Anwendung, die Sie je gebaut haben). Als Entwickler sind Sie sicher, dass es gut funktioniert, da Sie Komponenten- und Funktionstests durchgeführt haben. Was Sie als nächstes wissen müssen, ist, wird dies in der Produktion funktionieren und wird es in großem Maßstab durchführen? Skalierbarkeit ist unglaublich wichtig. Lasttestanwendungen können als das gleiche wie Funktionstests betrachtet werden, aber nur die Anwendung von Last auf Ihre Anwendungen und beobachten, was passiert. Es gibt einen Unterschied zwischen dem Testen für einen Benutzer und dem Testen für tausend Personen ist anders.

Die Lösung erstellt ein Framework, in dem Sie Ihre Anwendungen unter Last testen können, indem Sie Elastic Container Services verwenden, um Container zu drehen, die Hunderte von Verbindungen zu Ihrem Endpunkt erstellen, und Sie können Hunderte dieser Container aufdrehen. Die Zielseite von Distributed Load Testing auf AWS ist unten dargestellt.

Verteilte Auslastungstests auf AWS

Wie aus der Abbildung hervorgeht, gibt es einen Link zu einer CloudFormation-Vorlage, die die Lösung im Benutzerkonto mit ein paar Klicks aufdreht, ein detailliertes Bereitstellungshandbuch. Das View-Bereitstellungshandbuch ist ein detaillierter Leitfaden, der Anweisungen zu den Architekturüberlegungen und Konfigurationsschritten für die Bereitstellung von verteilten Lasttests auf AWS in der Amazon Web Services (AWS) Cloud enthält. Der Quellcode ist auf GitHub verfügbar, wenn der Benutzer ihn für seine eigenen Bedürfnisse und Anforderungen anpassen möchte. Das Architekturdiagramm stellt die gesamte Infrastruktur der Lösung dar, die das Front-End und das Back-End umfasst.

AWS Front-End

Wenn Front-End in Betracht gezogen wird: Es gibt eine Webkonsole und eine Benutzeroberfläche, die der Benutzer verwenden kann, um mit der Lösung zu interagieren. Es gibt auch eine API, mit der Sie Tests erstellen, den Status des Tests anzeigen, Testvorgänge erneut ausführen und Testvorgänge löschen können. Die Benutzeroberfläche stammt aus der CloudFormation-Vorlage. Hier beginnen die Benutzer tatsächlich mit der Konfiguration des Tests selbst.

AWS-Back-End

Das Backend besteht aus zwei Dingen: Es gibt eine Docker-Pipeline und dann die eigentliche Test-Engine selbst. Woher Docker Pipeline kommt, ist die Lösung, die eine Open-Source-Software namens Taurus verwendet. Auf Docker Hub ist ein Docker-Image verfügbar, das ein Benutzer verwenden kann. Auf diese Weise kann der Benutzer Hunderte von gleichzeitigen Verbindungen zu einem Endpunkt generieren. Es unterstützt auch JMeter und Gatling, die andere Testwerkzeuge sind. Dies ist der eigentliche Testteil der Images und dies ist die Anwendung, die die Tests durchführen wird und die in Form eines Docker-Images kommt. Die Back-End-Pipeline wird dieses Imagepaket für uns aufgreifen und auf das Konto des Kunden auf S3 übertragen. Und dann werden CodePipeline und CodeBuild verwendet, um dieses Image zu erstellen und es bei Elastic Container Services zu registrieren.

Die eigentlichen Tests finden in AWS Fargate statt. Es handelt sich um einen verwalteten Service, mit dem Sie Ihre Container auf dem Elastic Container Service ausführen können, ohne sich um das Netzwerk oder die zugrunde liegende Infrastruktur kümmern zu müssen. Es ist buchstäblich nur drehen Sie eine Aufgabe, führen Sie die Anzahl der Container, die Sie wollen, dass alles andere kümmert sich um. Darüber hinaus haben wir eine Lambda-Funktion, die die Anforderungen von unserer API übernimmt, und genau das führt die Tests aus. Es wird eine Testvorlage in S3 gespeichert. Es speichert alle Informationen, die wir in Dynamo sammeln, und dann verwenden wir SQS, um diese Aufgaben in AWS Fargate in die Warteschlange zu stellen, damit wir mit dem Spinnen unserer Container beginnen können.

Konfigurieren eines AWS TEST

Im Folgenden finden Sie eine Präsentation über das Front-End, wie wir einen Test konfigurieren.

AWS-Konfigurationstest

  1. Benutzer drückt auf die Schaltfläche“Test erstellen
  2. Der Benutzer gibt eine Name, Beschreibung, Aufgabenanzahl (es ist die Anzahl der Container, die Sie ausführen möchten), Parallelität (es ist die Zahl für jeden Container. Wie viele gleichzeitige Verbindungen, die erstellt werden), Ramp Up (wie lange ich von Anfang an zu bekommen werde, um bis zu dieser Anzahl von gleichzeitigen Verbindungen zu erhalten), Hold For (wie lange werde ich diesen Test halten?)
  3. Szenario: HTTP-Endpunkt im Test (derzeit UNTERSTÜTZT AWS einen einzelnen Endpunkt), HTTP-Methode (AWS unterstützt GET-, PUT-, POST-, DELETE-Vorgänge), HTTP-Header, Body Payload (Header und Nutzlast können analysiert werden).

Im Folgenden finden Sie einen Screenshot eines aktuellen Testlaufs:

AWS-Auslastungstestdetails

Die Einzelheiten des Tests wurden zur Verfügung gestellt. In diesem speziellen Beispiel wurden 20 Container angefordert, 20 Container werden ausgeführt. Sobald dies auf dem Back-End abgeschlossen ist, führt jeder container die Tests aus, nimmt die Ergebnisse und speichert diese dann in Form einer XML-Datei in S3 unserer Back-End-Lambda-Funktion. Sobald alle Container fertig sind, nehmen wir diese Informationen und aggregieren sie, geben alle diese Informationen an Dynamo weiter.

Unten finden Sie drei Screenshots einer Seite, die die Ergebnisse des Tests darstellen.

AWS Load Test Details HTTP-Test

AWS-Testergebnisse

AWS-Ergebnisverlauf

Wenn sich der Benutzer einen abgeschlossenen Test ansieht, wird ihm eine Zusammenfassung angezeigt. Testergebnisse, bei denen es sich um durchschnittliche Antwortzeiten, Latenz, CloudWatch-Metriken handelt, damit wir sehen können, wie wir arbeiten, eine Reihe anderer Datenpunkte sowie eine Ergebnishistorie.

Stellen Sie sich vor, Sie könnten dies einmal ausführen, eine Feinabstimmung an Ihrem Endpunkt auf Ihrer API vornehmen und dann den Test erneut ausführen, um zu sehen, wie dies die Antwortzeit verbessert, so dass die Entwickler in der Lage sind, zu iterieren und ihre Ergebnisse im Laufe der Zeit zu sehen. Verbesserungen für die Herstellung ihrer Anwendung. Am wichtigsten ist, dass sie die Leistung in großem Maßstab sehen.

Dies war ein tiefer Einblick in verteilte Auslastungstests auf AWS. Mit dieser Lösung werden alle Komplexitäten der Erzeugung von Last entfernt, um Ihre Anwendungen in großem Maßstab zu testen.

AWS-Autoskalierung

Die automatische Skalierung ist eine Methode, die im Cloud Computing verwendet wird, wobei eine Anzahl von Rechenressourcen in einer Serverfarm, die in der Regel in Bezug auf die Anzahl der aktiven Server gemessen wird, automatisch basierend auf der Auslastung der Farm skaliert wird. AWS Autoscaling trägt dazu bei, eine horizontale Skalierbarkeit Ihrer Anwendung zu erreichen. Es hilft, hohe Verfügbarkeit zu erreichen, die EC2-Kapazität hoch- und herunterzufahren, die gewünschte Kapazität aufrechtzuerhalten, die Kapazität auf der Grundlage der Nachfrage nahtlos zu erhöhen/verringern, was zu Kostenoptimierungen führt. Es funktioniert mit ELP und CloudWatch.

Erstellen von Elastic Load Balancer

Die folgende Abbildung zeigt die allgemeine Struktur, um das Verständnis der Grundlagen zu unterstützen.

Elastischer Last-Balancer

Erstellen von Elastic Load Balancer

Bevor wir die Startkonfiguration und die automatische Skalierung erstellen und einrichten können, müssen wir unseren Elastic Load Balancer (ELB) erstellen, einen Service-Provider von AWS, um eingehenden Datenverkehr gleichmäßig auf fehlerbesagte EC2-Instances zu verteilen, die unter seiner Kontrolle stehen. Gesund ist hier das Stichwort. Der Elastic Load Balancer führt regelmäßig konfigurierbare Zustandsprüfungen durch und trifft Entscheidungen darüber, wohin der Datenverkehr gesendet werden soll. Der Screenshot unten ist eine Überschrift zum EC2-Dashboard.

EC2-Dashboard

Hier ist es unser Ziel, für EC2 virtuelle Server in der Cloud zu gehen. Wie unten gezeigt, wählen wir unter Netzwerk & Sicherheit Load Balanceraus.

EC2-Dashboard_Network und Sicherheit

Danach drückt der Benutzer auf die Schaltfläche “Load Balancer erstellen”.

Load Balancer erstellen

Der Benutzer gibt einen Namen an. In diesem speziellen Beispiel lassen wir Erstellen eines internen Load Balancers ungeprüft. Dadurch wird der DNS-Name an eine öffentliche IP-Adresse weiterleiten. Wenn diese Option aktiviert ist, wird der DNS-Name stattdessen auf eine private IP verwiesen. Aktivieren Sie erweiterte VPC-Konfiguration wird überprüft werden, so dass wir Subnetze ELB in einem späteren Schritt zuweisen können. Die Listenerkonfiguration ermöglicht es uns, eingehenden ELB-Datenverkehr den EC2-Instances-Ports zuzuordnen. Die Standard-Port 80-Zuordnung hilft unserer Anwendung.

Konfigurieren der Zustandsprüfung

Der nächste Schritt, der unten gezeigt wird, ist die Konfiguration der Zustandsprüfung.

Konfigurieren der Zustandsprüfung

Konfigurieren der Zustandsprüfung: Optionen

Hier umfassen unsere Optionen Standard-HTTP, TCP, HTTPS und SSL. In unserem Beispiel bleiben wir in HTTP und werden auf robots.txt-Datei weitergeleitet. Wenn unser Webserver nicht bis zur statischen Anforderung dienen kann, können wir sicher davon ausgehen, dass etwas mit der Instance nicht stimmt, und es sollte kein weiterer Datenverkehr gesendet werden, bis er fehlerfrei wird. Mit den aktuellen Einstellungen unter erweiterten Details wird eine EC2-Instance alle 30 Sekunden überprüft. Es hat 5 Sekunden, um die Anforderung zu beantworten. Wenn Sie nicht in der zugewiesenen Zeit reagieren, kann die Instanz fehlerhaft sein. Zwei aufeinanderfolgende fehlerhafte Prüfungen versetzen die EC2-Instances aus dem Dienststatus. Wieder gesund zu werden. Es muss 10 aufeinanderfolgende Gesundheitsprüfungen bestehen, bevor er mit dem Empfang von Datenverkehr beginnt. Diese Schwellenwerte sind für unsere Anwendung akzeptabel.

Auswählen von Subnetzen/Zonen

Wählen Sie aus den Subnetzoptionen unten angezeigt.

Subnetze auswählen

Wir fügen jedes Subnetz hinzu, das wir für unsere Webserver erstellt haben. Es ist wichtig zu erwähnen, dass wir nur ein Subnetz pro Verfügbarkeitszone hinzufügen können.

Zuweisen von Sicherheitsgruppen

Im Folgenden finden Sie einen Screenshot, wie das Zuweisen von Sicherheitsgruppen aussieht.

Zuweisen von Sicherheitsgruppen

Wir müssen eine Sicherheitsgruppe für unsere ELB auswählen, daher wählen wir für dieses Beispiel die vorkonfigurierte ELB-Sicherheitsgruppe aus.

Hinzufügen von EC2-Instances

Im Folgenden finden Sie einen Screenshot, der zeigt, wie Sie EC2-Instances hinzufügen.

Hinzufügen von Instanzen zum Load Balancer

In diesem Schritt müssen wir sicherstellen, dass der Lastenausgleich “Cross Zone aktivieren” überprüft wird. Ohne sie ist unser Hochverfügbarkeitsdesign nutzlos. Aktivieren der Verbindungsentleerung sollte ebenfalls überprüft werden, die bestimmt, wie Datenverkehr behandelt wird, wenn eine Instance nicht registriert wird oder als fehlerhaft deklariert wurde.

Erstellen der Load Balancer-Überprüfungsseite

Die Bewertungsseite wird unten angezeigt. Von hier aus können Sie Ihre Auswahl überprüfen und bei Bedarf weitere Änderungen vornehmen.

Erstellen der Load Balancer-Überprüfungsseite

Jetzt wird die ELB erstellt. Sobald es fertig ist, sind wir bereit, unsere Startkonfiguration eine Autoscaling-Richtlinie zu erstellen. Das Erstellen der Richtlinie für die automatische Skalierung ist ebenfalls einfach, daher kann ein Benutzer den Prozess selbst durchlaufen.

LoadView versus die Konkurrenz: Warum LoadView heraussticht

Dieser Abschnitt bietet vergleicht auf hoher Ebene mit anderen gängigen Lasttesttools und -lösungen und LoadView. Nicht alle Auslastungstesttools sind gleich. Auch wenn Open-Source-Tools in der Regel keine Vorabkosten und Investitionen erfordern, was sie zu einer einfachen Option machen kann, ist es am besten zu verstehen, was LoadView einfacher macht als andere Tools.

Apache JMeter

Apache JMeter, eine Open-Source-Software, dient zum Lasttesten des Funktionsverhaltens und zur Messung der Leistung der Webanwendungen. Als nächstes werden wir ein Highlight die Vor- und Nachteile von JMeter nehmen.

Vorteile von Apache JMeter

  • Plattformunabhängig. JMeter kann in jedem Betriebssystem wie Mac, Windows und Linux ausgeführt werden.
  • Open-Source. Das Tool ist Open-Source, was bedeutet, dass es kostenlos verwendet werden kann. Ein Softwareentwickler kann auch Änderungen vornehmen und an seine Anforderungen anpassen, was zu viel Flexibilität führt. Ein Entwickler kann JMeter anpassen und Automatisierungstests auf JMeter anwenden.
  • Funktionalität. Mit JMeter kann ein Benutzer jede gewünschte Art von Tests durchführen – Auslastungstests, Stresstests, Funktionstests, verteilte Tests usw.
  • Berichterstattung. JMeter bietet zahlreiche Berichte und Diagramme – Diagramm-, Diagramm- und Baumansicht. Darüber hinaus werden HTML-, JSON- und XML-Formate für die Berichterstellung unterstützt.
  • Unterstützung für viele Protokolle. JMeter unterstützt FTP, HTTP, LDAP, SOAP, JDBC und JMS.
  • Load Generation Capacity. Die Software verfügt über eine unbegrenzte Lasterzeugungskapazität.
  • Ausführung. Es ist einfach auszuführen. Der Benutzer muss nur Java installieren, JMeter herunterladen und die JMeter-Skriptdatei hochladen.
    Analysebericht. Die Ergebnisse sind für weniger erfahrene Ingenieure und Anwender leicht zu verstehen und ermöglichen auch eine gründliche Analyse für Tester.

Apache JMeter Nachteile

  • Nicht benutzerfreundlich. Sie müssen viele Skripte schreiben, so ist es so nicht benutzerfreundlich wie andere Tools. Es kann verwirrend sein. Um Tests durchführen zu können, muss der Benutzer Skripte schreiben, die hart und verwirrend sein können, es führt dazu, dass die Software nicht benutzerfreundlich ist.
  • Mangelnde Unterstützung für Desktopanwendungen. JMeter eignet sich ideal zum Testen von Webanwendungen, eignet sich jedoch nicht für Desktopanwendungen.
  • Speicherverbrauch. JMeter ist in der Lage, schwere Last zu simulieren, visualisieren Sie den Testbericht, der viel Speicher absorbiert, führt den Speicher unter großer Last.
  • Keine JavaScript-Unterstützung. JMeter ist kein Browser, daher verhält es sich nur oder simuliert einen echten Browser. AJAX und JavaScript werden nicht unterstützt, daher wirkt sich dies auf die Effizienz des Tests aus. Sie sind nicht in der Lage, die clientseitige Leistung richtig einzuschätzen (weitere Informationen zu den Vor- und Nachteilen von JMeter finden Sie in unserem Ultimativen Leitfaden Leistungstests mit JMeter)

LoadNinja

LoadNinja ist die Load Testing-Plattform in der Cloud, mit der Sie die Leistung Ihrer Websites und Webanwendungen zuverlässig bestimmen können, ohne Skripts zu verwenden. LoadNinja wurde von Grund auf bis zum Medium für die Herausforderungen herkömmlicher protokollbasierter Lasttesttools entwickelt. Wir werden einige der Highlights und Einschränkungen von LoadNinja besprechen.

LoadNinja Vorteile

  • Verwendet echte Browser
  • Browserbasierte Metriken mit Analyse- und Berichtsfunktionen.
  • VU-Debugger. Ermöglicht Entwicklern das Auffinden und Isolieren von Fehlern während des Tests.
  • VU-Inspektor. Gibt Benutzern einen Einblick in die Interaktion virtueller Benutzer mit ihren Webseiten und Anwendungen während der Ausführung des Tests.
  • Aufnahmewerkzeug. Ähnlich wie der EveryStep Web Recorder, den wir weiter unten ausführlicher behandeln werden, können Punkt- und Klickskripts erstellt werden.

LoadNinja Nachteile

  • Abhängig von AJAX. Funktioniert nicht, wenn JavaScript deaktiviert oder nicht unterstützt wird.
  • Dynamischer Inhalt. Dynamische Inhalte werden für Ihre AJAX-basierte Anwendung nicht sichtbar gemacht.
  • Latenz. Latenzprobleme können höher sein, nur basierend auf dem asynchronen Verhalten von AJAX.
  • Kosten. Kann teuer sein, im Vergleich zu anderen Werkzeugen auf dem Markt und Funktionen enthalten.

LoadRunner

Es ist ein Software-Test-Tool von Micro Focus. Es wird verwendet, um Anwendungen zu testen, das Systemverhalten zu messen und die Leistung unter Last zu messen. Es kann Tausende von Benutzern gleichzeitig mit Anwendungssoftware simulieren. Werfen wir einen kurzen Blick auf das, was LoadRunner beliebt macht und einige der Nachteile der Lösung.

Vorteile von LoadRunner

  • Wiedergabe- und Aufzeichnungsfunktionalität (zusätzlich zur automatisierten Korrelation).
  • Neben proprietären Protokollen wie Remote Desktop, Citrix und Mainframes werden verschiedene Protokolle unterstützt.
  • Die Software kann versuchen, eine automatisierte Analyse des Engpasses durchzuführen.
  • Integration mit Infrastruktur wie HP ALM, QTP.

Die Software kann sich selbst und die zu testende Anwendung hinsichtlich der Ressourcenverfügbarkeit (RAM, CPU usw.) überwachen.

Nachteile von LoadRunner

  • LoadRunner ist ein teures Software-Testtool. Es hat vor kurzem kostenlose Testversionen veröffentlicht, aber es kann nicht einfach für die Verwendung heruntergeladen werden.
  • LoadRunner verfügt über eine begrenzte Lasterzeugungskapazität. Der Benutzer kann loadRunner-Tool nicht mit zu vielen Benutzern oder Threads überlasten. (Wenn der Benutzer nach einem Leistungstesttool sucht, das schwere Tests durchführt und auch zu viele Benutzer und Threadgruppen, dann wäre LoadRunner nicht die beste Wahl).
  • Die Ausführung ist komplex. Es wird ein Thread für jeden Benutzer erstellt.
  • In Bezug auf Analysis Report, die Informationen in einem Rohformat, das von HP Analysis analysiert wird, um verschiedene Diagramme zu generieren.

LoadView

Die Software ist ein Cloud-basiertes Stress- und Lasttest-Tool für Webseiten, Web-Apps, APIs und sogar Streaming-Medien. Da LoadView cloudbasiert ist, können Ingenieure und Tester Lasttests je nach Auslastungsanforderungen schnell hochfahren und skalieren. Ein Benutzer kann so viel Datenverkehr erzeugen, wie angefordert wird. In diesem Prozess muss der Benutzer keine zusätzliche Infrastruktur verarbeiten, was gegenüber Open-Source-Tools wie JMeter einen großen Vorteil darstellt, bei dem Benutzer Tests von ihren eigenen Computern ausführen müssen und nicht auf das Niveau skalieren können, das LoadView bietet.

LoadView Vorteile

  • Keine langfristigen Preisverpflichtungen, kommt mit einem umlagefreien Preismodell, so dass Kunden Test laden können, wann immer sie müssen.
  • Unterstützt die Aufzeichnung von Benutzerszenarien für dynamische und Rich Internet Applications (RIAs), wie Java, HTML5, Flash, Vue, Angular, React, PHP, Silverlight und Ruby (unter vielen anderen). Wenn es im Browser eines Benutzers gerendert werden kann, unterstützt der EveryStep Web Recorder dies.
  • Benutzer können Server von zahlreichen globalen geografischen Standorten aus verwenden, um die erwartete Benutzerbasis nachzuahmen.
  • Erstellen von Auslastungstestskripts, ohne auch nur eine Codezeile berühren zu müssen.
  • Cloud-basierte Auslastungstests in echten Browsern.
  • Testen Sie die Kompatibilität auf über 40 Desktop-/Mobilgeräten und Browsern.
  • Mehr als 20 weltweite Lastinjektor-Geostandorte.
  • Diagnostizieren Sie Engpässe, stellen Sie die Skalierbarkeit sicher und bestimmen Sie die Gesamtleistung.
  • Leistungsberichte, Metriken für die Kapazitätsplanung, Leistungsdashboards und mehr.

Zusammenfassend wird gezeigt, dass LoadView einfacher zu bedienen und effizienter ist als die anderen anderen Tools, die wir behandelt haben.

 

Wrapping Up: AWS Load Testing – Load Balancing & Best Practices

In diesem Artikel wurde erläutert, wie verteilte Auslastungstests mit AWS durchgeführt werden, wodurch die gesamte Komplexität der Erzeugung von Last beseitigt wird, um Ihre Anwendungen in großem Maßstab zu testen. AWS-Auslastungstests werden verwendet, um Benutzern beim Erstellen und Reproduzieren von Tausenden von verbundenen Benutzern zu helfen, die eine Anzahl von Transaktionen erzielen. Wir behandelten auch die Autoscaling-Funktion in AWS, einschließlich Definitionen der automatischen Skalierung, das Erstellen elastischer Lastbalancer zum Starten der Konfiguration und das Einrichten der automatischen Skalierung. Wir haben uns auch einige der anderen beliebten Lasttest-Tools auf dem Markt angeschaut und warum LoadView viel einfacher zu bedienen ist als andere Tools.

Für einen tieferen Blick auf LoadView im Vergleich zu anderen Lasttest-Tools und Lösungen auf dem Markt heute, besuchen Sie bitte unsere Alternativen Seite für umfassende Nebeneinander Vergleiche und Informationen.

Beginnen Sie noch heute mit LoadView! Melden Sie sich für die kostenlose Testversion an und erhalten Sie zu Beginn kostenlose Auslastungstests.