Metaways stresst Software via Web

Automatisierte Last- und Funktionstests in der Amazon-Cloud

| Autor / Redakteur: Lars Reimann und Marc Heisterkamp * / Elke Witmer-Goßner

Metaways nutzt die Cloud für automatisierte Last- und Funktionstests von Software.
Metaways nutzt die Cloud für automatisierte Last- und Funktionstests von Software. (Bild gemeinfrei: Binyamin Mellish - Pexels.com)

Mithilfe von Amazon-Cloud-Technologien und einer Kombination aus Software-Lösungen lassen sich Last- und Funktionstests von Applikationen weitgehend automatisieren. Die Tests können somit in wesentlich höherer Frequenz durchgeführt werden und es fallen deutlich weniger Kosten an.

Bei Last- und Funktionstests von Software-Anwendungen ergeben sich oft zwei grundlegende Probleme. Zum einen sind häufig die nötigen Hardware-Ressourcen nicht vorhanden oder können nicht freigemacht werden. Zum anderen werden solche Tests in aller Regel manuell durchgeführt. Das ist naturgemäß äußerst aufwändig und zeitintensiv, was hohe Kosten verursacht.

Der IT-Dienstleister Metaways hat deshalb eine Lösung entwickelt, die Last- und Funktionstests weitgehend automatisiert und dazu die Amazon-Cloud-Technologie nutzt. Der Hintergrund: Die Amazon Web Services (AWS) bieten nahezu unbegrenzte Ressourcen, die binnen weniger Minuten einsatzbereit sind. Die Abrechnung kann dabei nach Zeit beziehungsweise Verbrauch erfolgen, wodurch eine gute Kostenkontrolle möglich ist.

Der erste Schritt – die Erstellung des Testplans – muss dabei allerdings zwangsläufig manuell erfolgen. Da alle Applikationen, Datenbanken, Internetseiten und Web-Shops individuell gestaltet sind, müssen sie auch individuell getestet werden. So hat etwa jeder Web-Shop andere Login-Verfahren oder Bestell- und Bezahl-Vorgänge. Aber auch die Anforderungen sind von Fall zu Fall verschieden. Es kann beispielsweise sein, dass nur ausgewählte Funktionalitäten getestet werden sollen – etwa die Newsletter-Einstiegsseite einer Webseite, deren Performance besonders kritisch ist.

Kombination verschiedener Software-Komponenten

In anderen Fällen muss dagegen vielleicht eine umfassende Prüfung in einzelne Tests für verschiedene Komponenten unterteilt werden, um aussagekräftige Ergebnisse zu erhalten. Die Verwaltung der Testpläne mit Hilfe eines Version Control Systems (VCS) stellt sicher, dass sich Änderungen jederzeit nachverfolgen lassen, und im Bedarfsfall jederzeit auf ältere Versionen zurückgegriffen werden kann. Arbeiten mehrere Personen an den Testplänen, lässt sich jederzeit nachvollziehen, welche Änderungen die Kollegen vorgenommen haben.

Nach der manuellen Erstellung des Plans kann der Test durchgängig automatisiert durchgeführt werden. Ermöglicht wird dies durch eine Kombination verschiedener Software-Komponenten. Die Steuerung der Tests erfolgt durch eine Metaways-Eigenentwicklung auf Basis des AWS CLI (Amazon Web Services Command Line Interface). Als Test-Tool kommt das Open-Source-Werkzeug Apache JMeter zum Einsatz.

Ein Basis-Amazon-Machine-Image (AMI) wird aus dem VCS mit den nötigen dynamischen Informationen für den Start der Amazon-On-Demand-Instanzen versorgt. Somit verwenden die virtuellen Server in der Amazon-Cloud die konfigurierten Softwareversion von JMeter und der JMeter-Plugins. Die Parameter der Testpläne lassen sich an JMeter übergeben – beispielsweise wie viele Benutzer simuliert werden sollen und daraus abgeleitet die Zahl der Server, die in der Amazon-Wolke für den Test gestartet werden müssen.

Ergänzendes zum Thema
 
Die verwendeten Komponenten im Überblick

Simulierter Stress zeigt Grenzen der Belastbarkeit

Da es sich bei JMeter um eine verteilte Anwendung handelt, kann das Tool die Tests über mehrere Server hinweg ausführen und dadurch eine sehr große Last erzeugen. Werden beispielsweise fünf Instanzen gestartet, steuert ein Master die übrigen Server (Slaves) mit Befehlen. Dadurch können alle fünf Instanzen gleichzeitig auf die getestete Anwendung „feuern“ und damit sehr viele Requests durchführen. Wird beispielsweise eine Webseite getestet, simuliert JMeter einen Browser und ruft die URLs der Seite ab, die getestet werden sollen.

Die Testergebnisse werden automatisiert in der Amazon-Cloud erstellt und auf einer HTML-Seite präsentiert.
Die Testergebnisse werden automatisiert in der Amazon-Cloud erstellt und auf einer HTML-Seite präsentiert. (Bild: Metaways)

Dabei zeichnet das Tool auf, ob Fehler aufgetreten sind und wie lange die Antwortzeiten der Requests waren. Getestet wird aber nicht nur die Performance der Applikation. Ein JMeter-Plugin protokolliert außerdem auch den Verbrauch der Hardware-Ressourcen: Wieviel CPU wird beansprucht? Wieviel RAM ist in Benutzung? Wie sind die Festplatten ausgelastet? Und wie verändern sich diese Werte während des Tests?

Der Verlauf des Tests erfolgt dabei stufenweise. Zunächst wird er mit einem Initialwert durchgeführt, der unter dem theoretischen Maximum liegt, und dann mit immer weiter erhöhten Werten wiederholt. So lässt sich im Laufe des Tests das Maximum ausloten und beispielsweise erkennen, bei welcher Zahl gleichzeitiger Besucher die Webseite eine 100-prozentige CPU-Auslastung verursacht.

Ergänzendes zum Thema
 
Der Anbieter der Lösung

Die Ergebnisse der Tests werden ebenfalls automatisiert in der Amazon-Cloud erstellt. Weitere JMeter-Plugins werten dafür die Daten aus, generieren CSV-Dateien und Grafiken, und präsentieren diese auf einer HTML-Seite. Der Link zu dieser Seite wird selbstständig an die E-Mail-Adresse des Kunden verschickt, die als Parameter bereits mit dem Testplan an das System übergeben wurde.

Höhere Frequenz und geringere Kosten

Die Vorteile dieser Lösung liegen auf der Hand: Durch die Automatisierung lassen sich die Tests mit einer wesentlich höheren Frequenz durchführen als auf manuellem Wege. Außerdem fallen geringe Kosten an, die sich lediglich aus den Aufwendungen für die Testplanerstellung und den Gebühren für die Amazon-Wolke zusammensetzen.

Lars Reimann, Metaways Infosystems GmbH.
Lars Reimann, Metaways Infosystems GmbH. (Bild: Metaways)

Ein weiterer Vorteil: Die Lösung lässt sich an Continuous-Integration-Plattformen wie Jenkins anbinden und so nahtlos in die Entwicklungsprozesse von Applikationen integrieren. Wird beispielsweise ein neues Release einer Software freigegeben, können die Entwickler einen Test, den sie bereit bei einer älteren Version durchgeführt haben, einfach neu starten, um damit auch das neue Release zu überprüfen.

Als äußerst wertvoll hat sich bei der Realisierung der Lösung für automatisierte Last- und Funktionstests der Support für die Plugins aus dem JMeter-Umfeld erwiesen. Die grafische Darstellung der Testergebnisse etwa wäre ohne das Engagement ehrenamtlicher Unterstützer nicht möglich gewesen.

Marc Heisterkamp, Metaways Infosystems GmbH.
Marc Heisterkamp, Metaways Infosystems GmbH. (Bild: Metaways)

Für die Zukunft ist geplant, die Lösung weiter auszubauen. Ein Ziel dabei ist es, die in der Amazon-Cloud aufgezeichneten Ergebnisse (abgerufene Adressen, Antwortzeiten, Fehler, etc.), die bislang nur in Dateien gespeichert werden, in eine Datenbank zu schreiben. Dadurch ist es möglich, eine Test-Historie zu erstellen und die verschiedenen Testläufe über die Zeit zu vergleichen.

Nach einem gewissen Zeitraum könnten dann auch Aussagen über die Zusammenhänge zwischen der Leistungsfähigkeit der Hardware und der Performance der Software abgeleitet werden. Nicht zuletzt ließe sich dann außerdem anhand der Erfahrungswerte prognostizieren, ab wann für eine Anwendung eine neue Hardware benötigt wird, so dass diese rechtzeitig bestellt werden kann.

* Lars Reimann und Marc Heisterkamp sind System Engineer für Unix und Datenbanken beim IT-Dienstleister Metaways in Hamburg.

Kommentare werden geladen....

Kommentar zu diesem Artikel

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 44370064 / Testing)