Automatisierte Last- und Funktionstests in der Amazon-Cloud von Lars Reimann und Marc Heisterkamp (System Engineers für Unix und Datenbanken beim IT-Dienstleister Metaways in Hamburg)

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

  • 10 years ago Posted in

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 aufwand- und zeitintensiv und verursacht dadurch hohe Kosten. 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. 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.

Kombination verschiedener Software-Komponenten

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.

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. 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. 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. 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.

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.

Der Anbieter der Lösung

Die Metaways Infosystems GmbH in Hamburg ist ein Full-Service-IT-Provider für Internet- und Open-Source-Lösungen. Das Dienstleistungsspektrum umfasst Hosting, Applikationsentwicklung und Content Management ebenso wie IT-Consulting, Projekt- und Service-Management sowie System- und Software-Engineering. Metaways ist überzeugt von der Qualität und Durchsetzungskraft von Open-Source-Software im betrieblichen Umfeld und bietet mit der Groupware-Lösung Tine 2.0 und dem E-Commerce-Framework Arcavias zwei eigenentwickelte Open-Source-Lösungen. Zu den Kunden von Metaways gehören unter anderem das Deutsche Museum, Ecologic, die DAA – Deutsche Angestellten Akademie, die DVV Media Group, Gruner + Jahr oder HIS. 

Die verwendeten Komponenten im Überblick

·         AWS CLI (Amazon Web Services Command Line Interface)

·         VCS (Version Control System)

·         Cloud Init

·         Apache JMeter

·         JMeter-Plugins

·         Amazon S3 (Simple Storage Service)

·         Aktuell 50 Instanzen bei Amazon EC2 (Elastic Compute Cloud)

·         Python Boto

On average, only 48% of digital initiatives meet or exceed business outcome targets, according to...
GPUaaS provides customers on-demand access to powerful accelerated resources for AI, machine...
TMF Group, a leading provider of critical administrative services for global businesses, turned to...
Strengthening its cloud credentials as part of its mission to champion the broader UK tech sector...
Nearly all UK IT managers surveyed (98%) state cloud investment is an organisational priority for...
LetsGetChecked is a global healthcare solutions company that provides the tools to manage health...
Node4 to the rescue.
Commvault provides cloud-first organisations with greater choice and flexibility to protect and...