Vergleich von Lasttest-Tools

Es gibt sehr viele Programme, mit denen sich Lasttests durchführen lassen. Je nach Einsatzgebiet und Einsatzzweck sind unterschiedliche Programme geeignet.

In diesem Beitrag werden 5 gängige Tools mit einander verglichen und Vor- und Nachteile werden herausgestellt.

Test-Szenario

Es wird ein Programm zur Durchführung von automatisierten Lasttests gesucht, mit dessen Hilfe eine Webanwendung geprüft werden kann.

Das eingesetzte Tool soll über ein Reporting verfügen und Tests sollen relativ unkompliziert aufgesetzt werden können. Eine Reproduzierbarkeit der Tests ist sehr wichtig.

Die Web-Anwendung nutzt viel Javascript und Ajax-Calls, weshalb auch das eingesetzte Lasttest-Tool Ajax-Calls unterstützten muss.

Randbedingungen

  • Lasttest mit bis zu 20 Nutzern gleichzeitig muss simulierbar sein
  • Testen einer Website (http/https)
  • JavaScript/Ajax muss mit einbezogen werden bei Testausführung
  • unlogisches Nutzerverhalten simulieren (z.B. mehrmaliges vor und zurück, ändern der Sessionvariable in der URL usw.)
  • Reproduzierbare Tests ohne viel Aufwand beim Neustart der Tests
  • Reporting der Test-Läufe
  • Testskripte leicht zu erstellen und zu warten
  • Lauffähig auf Windows-Rechnern

Untersuchte Tools

Gatling

  • Letztes Release: 24.01.2019   (Stand 15.02.2019)
  • Dokumentation: https://gatling.io/docs/current/
  • Test-Anspruch: Lasttests
  • Vorteile:
    • Reporting in HTML-Format
    • Durchführung mehrerer Tests gleichzeitig
    • Testaufnahme im Browser möglich
  • Nachteile:
    • Es werden Scala-Dateien generiert, die über Batch-Programm ausgeführt werden. Für automatisiertes Testen von Vorteil. Bei Testern ohne Batch-Kenntnissen könnte die Ausführung zu einer Herausforderung werden.
    • Scripting- oder Programmiererfahrungen für Anpassungen der Tests notwendig.

Selenium

  • Letztes Release: Ende 2018   (Stand 15.02.2019)
  • Dokumentation: https://www.seleniumhq.org/docs/
  • Test-Anspruch: Regression-Tests von Web-Anwendungen
  • Vorteile:
    • Aufzeichnung und Anpassung über intuitives GUI.
    • Kann einfach als Chrome-Extension installiert und ausgeführt werden, um Tests auszuführen. Regression-Tests werden durch Selenium WebDriver als separate Anwendung zusammengestellt.
    • Tests können in Java geschrieben werden (Selenium WebDriver).
  • Nachteile:
    • Selenium ist nicht für Lasttests ausgelegt.

Tsung

  • Letztes Release: 30.08.2017   (Stand 15.02.2019)
  • Dokumentation: http://tsung.erlang-projects.org/user_manual/
  • Test-Anspruch: Laststest
  • Vorteile:
    • Hohe Performance und umfangreiche Test-Möglichkeiten.
    • Web-Interface für Test-Status und Reports.
  • Nachteile:
    • Es wird keine ausführbare Datei für Windows bereitgestellt.
    • Das Erstellen von Tests läuft über XML-Dateien. Es kann viel definiert werden und Tsung deckt viele Use Cases ab. Allerdings ist die Benutzung dadurch nicht einfach.
    • Das letzte Release liegt lange zurück. Unklar wie der Support in naher Zukunft aussehen wird.

WebLOAD

  • Letztes Release: Nov. 2018   (Stand 15.02.2019)
  • Dokumentation: https://www.radview.com/wp-content/uploads/2018/12/WebLOADQuickStartPRO.pdf
  • Test-Anspruch: Lasttests
  • Vorteile:
    • Umfangreiche Dokumentation (eBooks und Videos).
    • Tests können mit Hilfe eines Rekorders aufgezeichnet werden.
    • Umfangreiche Auswertungen.
    • Validierungen lassen sich über den Skript-Editor hinzufügen.
    • Integration mit Selenium möglich.
  • Nachteile:
    • Sehr viele Tools kommen zum Einsatz: WebLOAD Recorder, WebLOAD Console und WebLOAD Analytics. Das Aufsetzen und Ausführen der Tests ist daher mit einer gewissen Einarbeitungszeit verbunden.

JMeter

  • Letztes Release: 27.10.2018   (Stand 15.02.2019)
  • Dokumentation: http://jmeter.apache.org/usermanual/get-started.html
  • Test-Anspruch: Lasttest und Performance-Test
  • Vorteile:
    • Test IDE zum Aufnehmen der Tests über einen Browser
    • Erstellen von Testplänen
    • Auswertungen als HTML-Report
  • Nachteile:
    • Keine Ausführung von JavaScript

Zusammenfassung

JMeter kann kein JavaScript ausführen und deckt somit nicht alle Randbedingungen ab. Tsung ist längere Zeit nicht mehr aktualisiert worden, hier ist es unklar, wie der Support in Zukunft aussehen wird. Außerdem ist Tsung nicht auf Windows ausgelegt und eher für das Testen unter Linux entwickelt. Zudem ist das Aufsetzen der Skripts sehr technisch. Beide Tools eignen sich nicht für das untersuchte Szenario.

Selenium stellt eine sehr intuitiven Chrome-Extension zum Aufnehmen von Tests bereit. Damit lassen sich sehr schnell gute Tests erstellen, in dem z.B. HTML-Elemente anhand deren ID gesucht und die Werte abgeglichen werden. Selenium ist allerdings nicht für Lasttests ausgelegt, weshalb es für das beschriebene Test-Szenario nicht empfohlen wird.

Sowohl Gatling als auch WebLOAD decken das beschriebene Test-Szenario mit den genannten Rahmenbedingungen ab. Für WebLOAD spricht, dass eine Integration mit Selenium möglich ist. Somit lässt sich Selenium für Regression Tests nutzten und WebLOAD für Lasttests.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.