Einführung in Gatling

1. Übersicht

Gatling ist ein Lasttest-Tool , das das HTTP- Protokoll hervorragend unterstützt. Dies macht es zu einer wirklich guten Wahl für Lasttests auf jedem HTTP- Server.

Diese Kurzanleitung zeigt Ihnen, wie Sie ein einfaches Szenario zum Testen der Last eines HTTP- Servers einrichten .

Gatling- Simulationsskripte sind in Scala geschrieben , aber keine Sorge - das Tool hilft uns mit einer grafischen Benutzeroberfläche, mit der wir das Szenario aufzeichnen können. Sobald wir das Szenario aufgezeichnet haben, erstellt die GUI das Scala- Skript, das die Simulation darstellt.

Nach dem Ausführen der Simulation haben wir einen sofort einsatzbereiten HTML- Bericht .

Last but not least ist die Architektur von Gatling asynchron . Mit dieser Art von Architektur können wir virtuelle Benutzer als Nachrichten anstelle von dedizierten Threads implementieren, wodurch sie sehr ressourcenschonend sind. Daher ist das Ausführen von Tausenden von gleichzeitigen virtuellen Benutzern kein Problem.

Es ist jedoch auch erwähnenswert, dass die Core Engine tatsächlich protokollunabhängig ist , sodass es durchaus möglich ist, Unterstützung für andere Protokolle zu implementieren. Beispielsweise liefert Gatling derzeit auch JMS- Unterstützung.

2. Erstellen eines Projekts mit dem Archetyp

Obwohl wir Gatling-Bundles als .zip erhalten können, verwenden wir den Maven-Archetyp von Gatling . Dies ermöglicht es uns, Gatling zu integrieren und in eine IDE auszuführen und die Verwaltung des Projekts in einem Versionskontrollsystem zu vereinfachen. Seien Sie vorsichtig, da Gatling ein JDK8 benötigt .

Geben Sie in der Befehlszeile Folgendes ein:

mvn archetype:generate

Wenn Sie dazu aufgefordert werden:

Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains):

Art:

gatling

Sie sollten dann sehen:

Choose archetype: 1: remote -> io.gatling.highcharts:gatling-highcharts-maven-archetype (gatling-highcharts-maven-archetype)

Typ :

1

Um den Archetyp auszuwählen, wählen Sie dann die zu verwendende Version aus (wählen Sie die neueste Version).

Wählen Sie die groupId , artifactId , Version und Paketnamen für die Klassen , bevor die Urbild Schöpfung bestätigt.

Zum Abschluss importieren Sie den Archetyp in eine IDE - beispielsweise in die Scala-IDE (basierend auf Eclipse) oder in IntelliJ IDEA.

3. Definieren Sie ein Szenario

Vor dem Starten des Rekorders müssen wir ein Szenario definieren . Es wird eine Darstellung dessen sein, was wirklich passiert, wenn Benutzer in einer Webanwendung navigieren.

In diesem Tutorial verwenden wir die vom Gatling-Team bereitgestellte Anwendung für Beispielzwecke, die unter der URL //computer-database.gatling.io gehostet wird.

Unser einfaches Szenario könnte sein:

  • Ein Benutzer gelangt zur Anwendung.
  • Der Benutzer sucht nach 'amstrad'.
  • Der Benutzer öffnet eines der zugehörigen Modelle.
  • Der Benutzer kehrt zur Startseite zurück.
  • Der Benutzer durchläuft Seiten.

4. Rekorder konfigurieren

Starten Sie zunächst die Recorder- Klasse über die IDE. Nach dem Start können Sie über die GUI konfigurieren, wie Anforderungen und Antworten aufgezeichnet werden. Wählen Sie folgende Optionen:

  • 8000 als Abhörport
  • org.baeldung.simulation Paket
  • Name der RecordedSimulation- Klasse
  • Weiterleitungen folgen? überprüft
  • Automatische Referer? überprüft
  • Schwarze Liste erste Filterstrategie ausgewählt
  • . * \. css , . * \. js und . * \. ico in den Blacklist- Filtern

Jetzt müssen wir unseren Browser so konfigurieren, dass er den während der Konfiguration ausgewählten definierten Port ( 8000 ) verwendet. Dies ist der Port, mit dem sich unser Browser verbinden muss, damit der Recorder unsere Navigation erfassen kann.

So gehen Sie mit Firefox vor: Öffnen Sie die erweiterten Einstellungen des Browsers, rufen Sie das Netzwerkfenster auf und aktualisieren Sie die Verbindungseinstellungen:

5. Aufzeichnen des Szenarios

Nachdem alles konfiguriert ist, können wir das oben definierte Szenario aufzeichnen. Die Schritte sind die folgenden:

  1. Starten Sie die Aufnahme, indem Sie auf die Schaltfläche "Start" klicken
  2. Gehen Sie zur Website: //computer-database.gatling.io
  3. Suchen Sie nach Modellen mit dem Namen 'amstrad'
  4. Wählen Sie 'Amstrad CPC 6128'
  5. Gehen Sie zurück zur Startseite
  6. Durchläuft die Modellseiten mehrmals, indem Sie auf die Schaltfläche Weiter klicken
  7. Klicken Sie auf die Schaltfläche "Stop & Save"

Die Simulation wird in dem Paket org.baeldung generiert, das während der Konfiguration unter dem Namen RecordedSimulation.scala definiert wurde

6. Führen Sie eine Simulation mit Maven aus

Um unsere aufgezeichnete Simulation auszuführen, müssen wir unsere pom.xml aktualisieren :

 io.gatling gatling-maven-plugin 2.2.4   test execute  true    

Dadurch können wir die Simulation in der Testphase ausführen. Um den Test zu starten, führen Sie einfach Folgendes aus:

mvn test

Wenn die Simulation abgeschlossen ist, zeigt die Konsole den Pfad zu den HTML-Berichten an.

Hinweis: Die Konfiguration true wird verwendet, da wir Scala mit maven verwenden. Dieses Flag stellt sicher, dass unsere Simulation nicht zweimal kompiliert wird. Weitere Informationen finden Sie in den Gatling-Dokumenten.

7. Überprüfen des Ergebnisses

Wenn wir die index.html am vorgeschlagenen Speicherort öffnen , sehen die Berichte wie folgt aus:

8. Fazit

In diesem Tutorial haben wir das Testen der Last eines HTTP-Servers mit Gatling untersucht. Mit den Tools können wir mithilfe einer GUI-Oberfläche eine Simulation basierend auf einem definierten Szenario aufzeichnen. Nachdem die Aufnahme abgeschlossen ist, können wir unseren Test starten. Der Testbericht wird in Form eines HTML-Lebenslaufs vorliegen.

Um unser Beispiel aufzubauen, haben wir uns für einen Maven-Archetyp entschieden. Dies hilft uns, Gatling zu integrieren und in eine IDE auszuführen, und erleichtert die Verwaltung des Projekts in einem Versionskontrollsystem.

Der Beispielcode befindet sich im GitHub-Projekt.