Warum Sie die Performance Ihrer Web-Applikation testen sollten
24. April 2017
Veröffentlicht in:
WebentwicklungAussagekräftige Performancetests
Black Friday, Sommerschlussverkauf, Weihnachtszeit – die Kunden stürmen in die Onlineshops auf der Suche nach Schnäppchen und tollen Angeboten. Kein Warten, kein Gedränge, keine langen Schlangen an der Kasse. Das ist es doch, was jeder von uns am Onlineeinkauf liebt. Aber dann, plötzlich: Der Verbindungsaufbau ruckelt, der Shop wird langsam und schließlich Error 503 – Service unavailable. Der Server ist unter der Last des Kundenansturms zusammengebrochen. Der Albtraum jedes Shopbetreibers. So etwas darf nicht vorkommen, denn jeder Serverausfall, jedes Stocken, jedes kleine Performanceproblem kostet Kunden und damit wertvollen Umsatz.
Damit genau das nicht passiert, ist es nötig, jede Onlineplattform in regelmäßigen Abständen einem aussagekräftigen Performancetest zu unterziehen, bei dem die Reaktionen des Systems unter Höchstlast getestet werden. Nur so kommen die Schwachstellen eines Webprojektes ans Licht und können zuverlässig verbessert werden.
In diesem Artikel werfen wir einen Blick auf die Faktoren, die für die Performance einer Webseite entscheidend sind und stellen mit locust.io ein freies Tool vor, mit dem aussagekräftige Performancetests unkompliziert durchgeführt werden können.
Was ist gute Performance?
Von einer guten Performance einer Seite kann man immer dann sprechen, wenn User mit den dargebotenen Inhalten und Strukturen ohne spürbare Verzögerung interagieren können. Es gilt mittlerweise als sicher erwiesen, dass Internetnutzer nur noch etwa zwei bis drei Sekunden auf den Aufbau einer Seite warten, bevor das Browserfenster geschlossen wird. Ist das einmal geschehen, ist ein potenzieller Kunde verloren und das wohlmöglich auf Dauer.
Dabei kann es helfen, sich ein großes Webprojekt wie ein Gebäude aus vielen kleinen Einzelbausteinen und Rädchen vorzustellen, die alle ineinandergreifen und von denen jedes seine bestimmte Aufgabe hat. An jeder dieser Schnittstellen kann es zu Problemen kommen, welche die Performance des gesamten Projektes negativ beeinflussen. (Von störenden Einflüssen außerhalb des eigenen Systems, wie Services von Drittanbietern wollen wir erst gar nicht anfangen. Sie potenzieren das Problem noch.)
Für den reibungslosen Betrieb eines so komplexen Systems auch unter erschwerten Bedingungen sind regelmäßige Performancetests unerlässlich.
Wie lässt sich gute Performance messen?
Ein Performancetest muss Aufschluss über wichtige Faktoren geben, welche die Performance positiv oder negativ beeinflussen. Hierzu gehören:
- das Aufdecken eventueller Schwachstellen und Flaschenhälse zwischen verschiedenen Komponenten des Systems.
- die maximale Anzahl an Nutzern herauszufinden, die das System gleichzeitig bedienen kann.
- Schwachpunkte der zugrunde liegenden Technologie ausfindig zu machen, um sie gezielt beheben zu können.
- die Reaktionen des Systems unter Volllast voraussagen zu können.
Um diese Faktoren vollumfänglich beurteilen zu können, zielen Performancetests in aller Regel auf vier wichtige Faktoren ab.
- Verfügbarkeit
- Reaktionszeit
- Datendurchsatz
- Auslastung
Verfügbarkeit – Mit Verfügbarkeit bezeichnet man die Zeit, in der das System in der Lage ist, Nutzeranfragen zu verarbeiten. Kommt es zu spürbaren Geschwindigkeitsverlusten oder einem kompletten Kommunikationsausfall mit dem Server, gilt das System als nicht verfügbar. In dieser Zeit können keinerlei Umsätze generiert werden, was zu einem durchaus substanziellen Verdienstausfall führen kann.
Reaktionszeit – Die Reaktionszeit bezeichnet die Zeit, die zwischen einer Nutzeranfrage und einer Serverantwort vergeht. Diese Zeit muss möglichst kurz sein, um User auf der Seite zu halten. Eine gute Programmierung hält das System so schlank, dass es nicht zu spürbaren Verzögerungen kommt. Ziel muss es sein, dem Kunden nie eine gänzlich weiße Browserseite zu zeigen, denn dann beginnen die zwei bis drei Sekunden zu ticken. (Sie erinnern sich, oder?)
Datendurchsatz – Die Datendurchsatzrate ist ein Maß dafür, wie viele Userinteraktionen ein System parallel verarbeiten kann. Ein einfaches Messkriterium ist zum Beispiel die Anzahl von Zugriffen pro Sekunde, die eine Webseite verarbeiten kann, ohne dass es zu Einbußen in der Reaktionszeit kommt.
Auslastung – Die Auslastung eines Systems gibt einen Hinweis auf die theoretische Kapazität einer Webseite. Beispielsweise kann gemessen werden, welche Bandbreite der Traffic einer Webapplikation einnimmt, oder welche Leistung sie im Rechenzentrum abruft, wenn 1000 Benutzer gleichzeitig unterwegs sind.
Performancetests mit locust.io
Der Markt an Tools für den Performancetest ist riesig. Eine Menge durchaus brauchbarer Werkzeuge wirbt um die Gunst der Kunden. aus dieser Masse sticht das Projekt locust.io deutlich heraus. Das frei erhältliche Open-Source-Projekt bringt alles mit, um die Performance einer Webseite zuverlässig zu analysieren. Das Beste dabei ist, dass jeder mögliche Testfall komplett in Python beschrieben werden kann.
Locust.io ist schlank, beliebig skalierbar und kann zum Testen von Webseiten, Webapplikationen und anderen netzbasierten Services genutzt werden. Im Gegensatz zu vielen anderen Testwerkzeugen arbeitet locust.io vollständig eventbasiert, was Test mit sehr großen Nutzerzahlen zulässt. So sind mit locust.io auch verteilte Performancetests über mehrere Maschinen hinweg möglich.
Locust.io wird vollständig über ein browserbasiertes Interface verwaltet, das alle relevanten Testergebnisse in Echtzeit übersichtlich präsentiert. Das macht locust.io nicht nur sehr variabel, sondern zudem auch vollständig systemunabhängig.
Fazit
Eine hervorragende Performance ist für moderne Webservices unverzichtbar. Gerade bei umfangreichen Projekten greifen verschiedenste Module ineinander, deren Schnittstellen die Performance eines Systems merklich ausbremsen können. Die genaue Kenntnis eines Systems zusammen mit einem gründlichen Performancetest hilft dabei, solche Reibungsverluste im System zu erkennen und zu beseitigen. Mit locust.io steht dazu ein freies und pythonbasiertes Tool mit einer übersichtlichen Weboberfläche zur Verfügung.
Sie haben weitere Fragen zur Performance von Web-Applikationen? ! mindtwo in Bonn berät Sie gerne.
Können wir weiterhelfen?
Sie haben ein spannendes Projekt und möchten mit uns zusammenarbeiten? Kontaktieren Sie uns jetzt!