Gatling ist ein Tool zur Durchführung von Last und Performance Tests und kommt in zwei unterschiedliche Flavours: sowohl als Open Source als auch kommerzielle Version im Cloud. Gatling ist ein hochleistungsfähiges Lasttest-Tool. Es ist auf Benutzerfreundlichkeit, Wartbarkeit und hohe Leistung ausgelegt mit dem an Fokus das codebasierte Skripting und die starke Priorisierung der Entwicklererfahrung. Die Skripte werden in Scala geschrieben ( via DSL auch Java und Kotling unterstützt)
FUNKTIONSWEISE
Gatling bietet standardmäßig eine hervorragende Unterstützung des HTTP-Protokolls, was es zu einem Tool der Wahl für Lasttests für jeden HTTP-Server macht. Da die Kern-Engine tatsächlich protokollagnostisch ist, ist es durchaus möglich, Unterstützung für andere Protokolle zu implementieren. Beispielsweise liefert Gatling derzeit auch JMS-Unterstützung aus(auch unterstützt, FTP, TCP, JDBC)
Gatling ’s Szenarien, sind im Code definiert und ressourceneffizient. Basierend auf einer aussagekräftigen DSL sind die Szenarien selbsterklärend und einfach zu warten. Sehr leicht in einem Versionskontrollsystem um zu gehalten.
Die Architektur von Gatling ist asynchron, solange das zugrunde liegende Protokoll wie HTTP nicht blockierend implementiert werden kann. Diese Art von Architektur ermöglicht es, virtuelle Benutzer als Message anstelle von dedizierten Threads zu implementieren, das macht sehr ressourcenschonend. Daher ist es kein Problem, Tausende gleichzeitiger virtueller Benutzer auszuführen.
Sehr geeignet für kleinere Performance Test in einem Shift Left Einsatz.
VOR- UND NACHTEILE
Vorteile von Gatling
- Open Source, keine Kosten(Teilweise-Basis ,für die komplexere Ansätze gibt es die kommerzielle Cloud Version)
- Built in Dashboard
- Command Line Tools und Build In Reporting
- Unterstützung für Asynchron, Akka Based Core
- Unterstützung für Monitoring und real Time
- Integration in viele CI / 3-rd Party Lösungen(Jenkins, Team City,Bamboo)
- Code-Scripting-Funktion
- Funktionale Specs
- Plugin Erweiterungen(Maven, Gradle)
Nachteile von Gatling
- momentan -stand 2022-noch relativ kleinere Online Community und Dokumentation
- Limitierte Protokoll Anzahl(HTTP,JMS, FTP, TCP, JDBC)
- Keine GUI
- zu wenig Info während die Ausführungen
- Umständliche Aufzeichnung Möglichkeiten(Action User und Simulationen)
- Keine direkte Unterstützung bei Korrelation und Substitutionen
- Umständliche Verteilung der Testdaten
- Xpath, JSON Path, CSS, Regular Expressions Know-How notwendig
- kein Unterstützung für distributed testing(single machine host)
WEITERFÜHRENDE LINKS:
VERWANDTE BEGRIFFE
- Last und Performance Tests
- NeoLoad
- LoadRunner
- JMeter
- K6
- BlazeMeter(Cloud PaaS Performance Testing)
- OctoPerf(Cloud SaaS Performance Testing)
- Flood.io(Cloud SaaS Performance Testing)
- Taurus(Performance Testing)