In 0 - Projekt einrichten haben wir unser Gatling-Projekt aufgesetzt und alles für unseren ersten Test vorbereitet. In diesem Tutorial gehen wir auf die benötigten Grundlagen ein und erstellen ein erstes einfaches Test-Szenario.
Vorbedingung
Als Vorbedingung benötigen wir natürlich unsere JWT-Anwendung, die wir aufrufen und testen können. In den folgenden Tutorials gehen wir davon aus, dass wir die Anwendung lokal unter folgender URL deployed haben: http://localhost:8080/jwt-tutorial-003-5.7.0.2/
Szenario Setup
Unser erstes Szenario sendet eine einfache Anfrage an das jadice web toolkit. Das Szenario legen wir in dem Ordner src/test/scala/org/jwt/performance/ unter dem Namen SimulationSimple.scala an. In diesem Szenario legen wir 5 Nutzer an, welche eine Anfrage an die Base-URL senden.
Als Erfolgskriterien definieren wir:
- Eine erfolgreiche Antwort des Servers (HTTP 200)
- Eine maximale Antwortzeit von 2 Sekunden.
import io.gatling.core.Predef._
import io.gatling.http.Predef._
class SimulationSimple extends Simulation {
val httpProtocol = http
.baseURL("http://localhost:8080/jwt-tutorial-003-5.8.0.0")
val defaultHeader = Map(
"Accept" -> "*/*")
val scn = scenario("Simple Scenario")
.exec(http("Simple Request")
.get("/")
.headers(defaultHeader)
.check(status.is(200))
)
setUp(scn.inject(atOnceUsers(5)))
.protocols(httpProtocol)
.assertions(
global.responseTime.max.lte(2000)
)
}
Die Variable httpProtocol speichert die Http-Konfiguration für unsere Anfragen.
In der Variable defaultHeader werden die Anfrage-Kopfzeilen gespeichert. Dieser können wir nach belieben Anfragen hinzufügen.
Hier wird das eigentliche Szenario und somit der Testablauf definiert. Innerhalb eines Szenarios können wir beliebig viele http-Anfragen an die Anwendung senden.
Das Erstellen und Injizieren von Nutzern in das Szenario erfolgt innerhalb der Setup-Methode
Hier wird das oben vorbereitete http-Protokoll angefügt
Unter assertions lassen sich Restriktionen für die Anfragen festlegen
Ausführen von Tests
Die Tests starten wir über folgendes Kommando (entweder über die Konsole oder über einen konfigurierten Maven build):
Ergebnisse
Die Ergebnisse eines Tests werden standardmäßig (in der Konfiguration des Plugins innerhalb der pom.xml) unter target/reports/gatling/ abgelegt. Zum Betrachten eines Reports navigieren wir in das entsprechende Verzeichnis und öffnen die zugehörige index.html.
Die Ergebnisse beinhalten Informationen zu:
- Aktive Nutzer
- Antwortzeiten
- Erhaltene Anfragen/Antworten
Das Ergebnis könnte folgendermaßen aussehen:
Klicken Sie hier, um zu erweitern...