DEVOPS

Tools für Performancetests: 8 Tools, die euch helfen, Probleme aufzuspüren

Performance ist eine wichtige Komponente der Benutzerfreundlichkeit. Wenn eure Website langsam ist, werden Benutzer sie verlassen – und wahrscheinlich nicht wiederkommen. Wenn die Benutzererfahrung unterdurchschnittlich ist, ist die Wahrscheinlichkeit geringer, dass Kunden bei euch kaufen, selbst wenn sie vorerst auf der Website bleiben. Zu allem Überfluss wird es dadurch sogar noch unwahrscheinlicher, dass sie eure App überhaupt finden, da Google Websites mit schlechter Performance in den Suchergebnissen herabstuft.

Um Performanceprobleme zu beheben, ist es wichtig, zu wissen, welche Faktoren Einfluss auf die Leistung haben. Das bringt euch allerdings nur bedingt weiter. Selbst sehr erfahrene Entwickler machen Fehler, zudem treten nicht selten unvorhergesehene Probleme auf. Und genau dafür gibt es Tools.

In diesem Beitrag stellen wir euch eine Liste aus acht Tools für Performancetests vor, die ihr euch ansehen solltet. Die Liste beinhaltet verschiedene Arten von Tools, von Lasttests über Stresstests bis hin zu Profilern. Auf diese Weise könnt ihr eine umfassende Strategie entwickeln, um eure Anwendung vor Performanceproblemen zu schützen.

Warum ist diese breite Abdeckung wichtig? Nun, es gibt viele verschiedene Faktoren, die Einfluss auf die Performance haben. Außerdem gibt es eine Reihe verschiedener Szenarien, in denen es sinnvoll ist, die Performance zu messen (z.B. Verwendung von Code-Profilern während der Entwicklung im Gegensatz zur Verwendung eines Tools für Lasttests, wenn die App online ist.) Aus diesem Grund ist es wichtig, verschiedene Techniken und Tools für Performancetests zu nutzen, weshalb wir hier eine vielfältige Liste an Tools vorstellen.

Apache JMeter

JMeter ist eins der bekanntesten verfügbaren Tools für Leistungstests. Es handelt sich um eine Anwendung zur Durchführung von Lasttests und zur Messung der Website-Performance. JMeter ist eine kostenlose Open Source-Anwendung, die in Java geschrieben wurde.

Also, was leistet JMeter, beziehungsweise: Was leistet es nicht?

Dieses Tool kann zum Testen sowohl statischer als auch dynamischer Webanwendungen verwendet werden und setzt sie vielen verschiedenen Belastungen aus. 

Andererseits ist JMeter kein Browser und kann nicht alle Aktionen ausführen, die in einem Browser verfügbar sind. Es rendert zum Beispiel weder HTML noch führt es JavaScript-Code aus.

Ihr könnt JMeter sowohl im GUI-Modus als auch im CLI-Modus verwenden. In der Regel beginnt ihr mit der Erstellung von Testplänen im GUI-Modus und verwendet dann den CLI-Modus zur Ausführung der Tests.

Artillery

Artillery ist ein modernes Tool für Performancetests von Back-End-Services. 

Mit diesem Tool könnt ihr überprüfen, wie eure App unter verschiedenen Belastungen reagiert, indem ihr Last-, Stress- und Soak-Tests durchführt. Außerdem sind Synthetic Monitoring-Prozesse möglich, mit denen sich bestätigen lässt, dass wichtige Workflows eurer Services wie erwartet funktionieren.

In Artillery erstellt ihr Testdefinitionen mithilfe von YAML. Anschließend führt ihr diese Definitionen auf der Befehlszeilenschnittstelle von Artillery aus.

Artillery ist in zwei Versionen verfügbar. Artillery Core ist die kostenlose Open Source-Version. Sie lässt sich komfortabel mithilfe von npm installieren und ermöglicht euch das Erstellen und Ausführen von Tests vom lokalen Computer aus.

Zusätzlich gibt es Artillery Pro, die kostenpflichtige, Cloud-native Version, die ihr in eurer AWS-Infrastruktur hosten könnt. Artillery Pro bietet mehr Möglichkeiten für Teams, wie etwa das Ausführen von Tests im großen Maßstab und die Simulation von Zugriffen von vielen verschiedenen, weltweit verteilten Standorten.

Artillery ähnelt JMeter dahingehend, dass es kein Browser ist, sondern auf der Protokollebene arbeitet.

LoadView

LoadView ist eine Cloud-basierte Lösung für Lasttests. Im Gegensatz zu den beiden vorherigen Tools gibt es hier keine lokale Option für die Installation. Das Tool wird als SaaS angeboten.

LoadView ermöglicht Teams das Testen von Webseiten, Web-Apps und APIs mit echten Browsern in einer verwalteten Cloud. Es simuliert Aktionen realer Benutzer und kann für umfassende Internet-Anwendungen eingesetzt werden. Im Gegensatz zu den beiden anderen Tools kann LoadView daher clientseitige Inhalte so darstellen, wie das auch in einem Browser geschehen würde.

Wie bereits erwähnt, handelt es sich bei LoadView um einen kostenpflichtigen Dienst. Unternehmen können zwischen einer nutzungsbasierten Bezahlung und einem jährlichen oder monatlichen Abonnement wählen. Eine kostenlose 30-Tage-Testversion ist ebenfalls verfügbar.

StresStimulus

StresStimulus ist ein Tool für Lasttests, das das Testen in Web-Anwendungen und mobilen Anwendungen sowie das Testen von Enterprise-Systemen unterstützt. Anders als LoadView ist es kein SaaS, sondern ein herunterladbares Produkt, das in vier Editionen erhältlich ist: Free, Pro, Enterprise und SP. Unternehmen können sich für eine siebentägige, verlängerbare Testversion registrieren.

StressStimulus wurde so konzipiert, dass Einsteiger das Tool leicht nutzen können und zugleich die notwendige Flexibilität für fortgeschrittene Benutzer vorhanden ist. Deshalb lässt es sich sowohl über eine grafische Benutzeroberfläche verwenden, mit Assistenten, die euch beim Erstellen eurer ersten Skripts unterstützen, als auch über einen Skript-Editor, mit dem Änderungen und eine Versionsverwaltung auf einfache Weise möglich sind.

Postman/Newman

Postman ist ein beliebtes Tool für Entwicklung und das Testen von APIs. Es wird zwar im Allgemeinen nicht als Tool für Leistungstests angesehen, es ist aber fraglos möglich, die Funktionen von Postman für diese Zwecke zu nutzen, beispielsweise um die Verfügbarkeit und Ladezeiten zu überprüfen.

Mithilfe von Newman ist es möglich, Postman-Sammlungen über die Befehlszeile auszuführen und solche Tests sogar eurer CI/CD-Pipeline hinzuzufügen. Newman ist der CLI Collection Runner für Postman. Da es in Node.js geschrieben wurde, könnt ihr Newman einfach mittels npm installieren.

Postman wird in kostenlosen und kostenpflichtigen Versionen angeboten, je nach Anzahl der Teammitglieder und den benötigten Funktionen.

Profiler stellen eine wichtige Komponente einer Performance-Teststrategie dar. Wir stellen hier zwei von ihnen vor, beginnend mit dotTrace.

Google Lighthouse

Lighthouse ist ein von Google entwickeltes Open-Source-Tool. Sein Hauptzweck besteht im Testen von Webseiten anhand einer Reihe von Kriterien, von denen die meisten mit der Performance zusammenhängen.

Lighthouse ist sehr flexibel und lässt sich in vielfältiger Weise einsetzen:

  • Innerhalb der Chrome-Entwickler-Tools
  • Als Node.js-Modul
  • An der Befehlszeilenschnittstelle
  • Als Web-App
     

Am interessantesten ist vielleicht die Option Lighthouse CI, mit der ihr Lighthouse zu eurer CI/CD-Pipeline hinzufügen könnt, um sicherzustellen, dass die Performance eurer Web-App bei jedem Commit oder Pull-Request getestet wird, der in die Hauptline eingebunden wird.

Googles Test My Site

Dies ist ein weiterer Performancetest aus dem Angebot von Google.

Test My Site legt den Schwerpunkt auf mobile Websites. Das Tool ermöglicht es euch, eine Region oder ein Land und eine Verbindungsart (z.B. 3G, 4G usw.) auszuwählen. Anschließend wird eure Seite auf der Grundlage der Verbindungsart für das ausgewählte Land bewertet.

Euch werden außerdem Maßnahmen empfohlen, mit denen ihr die Leistung eurer mobilen Seite verbessern könnt.

Splunk Observability Cloud

Das Beste kommt zum Schluss: Splunk!

Splunk Observability Cloud ist eine umfassende Observability-Lösung, die über bloße Performanceaspekte hinausgeht und euch Einblick in den gesamten Betrieb gibt. Sie bietet Echtzeit-Transparenz und ermöglicht es Unternehmen, sofort zu sehen, wie sich jede Codeänderung auf das Benutzererlebnis und die Leistung der Anwendung auswirkt. Dank der leistungsstarken Analysefunktionen können Unternehmen mit Splunk potenzielle Probleme erkennen und beheben sowie eine Ursachenanalyse durchführen.

Auch wenn ihr Splunk vielleicht nicht als Performance-Testtool im herkömmlichen Sinn betrachtet, kann es euch sicherlich helfen, den performanten Betrieb eurer Apps aufrecht zu erhalten. Mit Splunk könnt ihr Daten aus allen Datenquellen im Unternehmen untersuchen und überwachen und erhaltet so eine Single Source of Truth. Mit der gewonnenen Transparenz lassen sich Trends erkennen und Probleme präventiv abwehren, um eure Anwendungen und eure Infrastruktur vor Ausfallzeiten zu schützen.

Die Observability-Produkte von Splunk bündeln Synthetic Testing, Real User Monitoring und Application Performance Management mit Profiling-Support an einem einzelnen Ort und machen es einfach, die Performance eurer Anwendungen unter verschiedenen Blickwinkeln zu untersuchen.

Tools für Performancetests: Deckt alle wichtigen Stellen ab

Wenn ihr euch wirklich absichern wollt, ist es wichtig, die Performance auf verschiedene Arten zu testen. Daher haben wir in diesem Beitrag verschiedene Tools so vorgestellt, dass sie sich gegenseitig ergänzen.

Mit einer strategischen Kombination aus Code- und Datenbank-Profilern, Last- und Stresstests – sowohl für das Back-End als auch für das Front-End – und Observability könnt ihr Performanceprobleme drastisch reduzieren und sicherstellen, dass eure Kunden eine angenehme Benutzererfahrung haben.


Dieser Beitrag wurde von Carlos Schults verfasst. Carlos ist Consultant und Softwareentwickler mit Erfahrung in der Entwicklung für Desktop, Web und mobile Geräte. Zwar ist C# seine Hauptsprache, er verfügt aber über Erfahrung mit einer Reihe von Sprachen und Plattformen. Zu seinen Hauptinteressen gehören automatisierte Tests, Versionskontrollen und die Codequalität.

*Dieser Artikel wurde aus dem Englischen übersetzt und editiert. Den Originalblogpost findet ihr hier. 

Splunk
Posted by

Splunk

TAGS
Show All Tags
Show Less Tags