Deutsch EnglischSie sind hier: Startseite » Kapitel 3 - Lasttesttools » The Grinder 

3 Lasttesttools

The Grinder Logo

3.4.1 The Grinder [23]

The Grinder ist ein Java Lasttest-Framework, das unter einer BSD-style open-source Lizenz frei verfügbar ist. Die erste Version wurde für das Buch "Professional Java 2 Enterprise Edition with BEA WebLogic Server" von Paco Gómez und Peter Zadrozny entwickelt. Philip Aston entwickelte die Version weiter und es entstand The Grinder 2. Die neueste Version The Grinder 3 ist im Moment noch in der Betatesting-Phase. Sie ist aber ebenfalls bereits verfügbar. Zur Vorstellung wird die Version The Grinder 2 benutzt, aber auf die Erweiterungen der neueren Version eingegangen.

3.4.1.1 Überblick

The Grinder 2 ist ein in Java geschriebenes Framework, welches Komponenten bereitstellt, um Last- und Performancetests für Webanwendungen durchzuführen. Es ist darauf ausgerichtet ein Tool für Programmierer zu sein, der das zu testende System gut kennt.

3.4.1.2 Unterstützte Systeme, Protokolle

The Grinder 2 unterstützt http- und https-Protokolle. Weiterhin werden Cookies voll unterstützt und es können Multipart-Formulare verarbeitet werden. Mit Hilfe von The Grinder 3 können auch Datenbanken - über die JDBC-Schnittstelle, Webservices via SOAP oder XML-RPC, auf RPC und MOM basierte Middleware, welche die Protokolle IIOP, RMI/IIOP, RMI/JRMP oder JMS unterstützen und andere Internetanwendungen, die POP3, SMTP, FTP und Protokolle verwenden, getestet werden.

3.4.1.3 Szenario-Unterstützung ( request-flow )

In der Version The Grinder 2 ist es nicht möglich, die Testskripte auf vorhergehende Anfragen/Antworten reagieren zu lassen. Erst in der Version The Grinder 3 besteht die Möglichkeit die Antwort des Webservers auszulesen und diesen Text zu parsen, um anhand dieser Antwort den weiteren Testablauf zu steuern. Durch den Einsatz von Python oder Jython, das heißt, die Möglichkeit Verzweigungen, Schleifen und andere Sprachkonstrukte in den Testskripten zu verwenden, sind auch komplexe Szenarios vorstellbar. Allerdings ist die mit einigem Aufwand verbunden.

3.4.1.4 Parallele Nutzerzahl ( virtual users )

Ab der Version The Grinder 2 werden die verschiedenen Nutzer durch Threads simuliert. Auf einer Maschine ist es ausreichend einen Clientprozess zu starten, der die Anzahl der parallelen Nutzer verwaltet. Der Clientprozess erzeugt für jeden Nutzer einen Thread. Die Grenze für die Anzahl der Nutzer auf jeder Maschine wird durch die Leistung der CPU und die Größe des Arbeitsspeichers definiert. Durch die Nutzung von mehreren Clientmaschinen ist die parallele Nutzerzahl aber quasi unbegrenzt und sie wird berechnet durch:

Parallele Nutzerzahl = Threads x Clientprozesse x Anzahl Lastclients

3.4.1.5 Verteilte Anwendung ( distributed )

Die The Grinder Versionen unterstützen das Verwalten von mehreren Lastclients. Dadurch ist es möglich mit einer Steuerungsinstanz die Prozesse aller Lastclients zu verwalten. Dazu gehört ab The Grinder 3 auch das Übertragen der erzeugten Testskripte auf die Clients. Während The Grinder 2 noch die Daten per Multicast aussendet, werden in der neueren Version TCP-Socket-Connections verwendet. Dies erspart aufwendige Einrichtungsschritte und vermindert die Netzwerklast. Eine Einschränkung der verteilten Anwendung ist aber die Tatsache, das die Steuerungsinstanz zwar die Prozesse verwaltet, die gesammelten Rohdaten während des Tests aber nur auf den Lastclients gespeichert werden. Diese müssen im Nachhinein von den einzelnen Lastclients manuell eingesammelt und verarbeitet werden.

3.4.1.6 Testskript-Erzeugung ( recording )

Mit dem Tool The Grinder 2 existiert keine Möglichkeit Testfälle aufzunehmen und die entsprechenden Testskripte erzeugen zu lassen. Es ist erforderlich die Testskripte in einem Editor zu erstellen und durch die gegebenen Möglichkeiten zu konfigurieren. Es ist aber möglich auf JavaBeans zuzugreifen, um dynamische Inhalte in die Skripte einfließen zu lassen.

The Grinder 3 wurde an dieser Stelle stark erweitert. Es bietet nun die Möglichkeit Testskripte auszuführen, die in Java oder in Jython - die Java Implementierung von Jython - geschrieben sind. Auch die Möglichkeit Nutzeraktionen über einen TCP-Proxy aufzunehmen und die erzeugten Skripte zu bearbeiten ist nun vorhanden.

TheGrinder3 Konsole

Abbildung 3.4-1 - The Grinder 3 Konsole

Die Abbildung 3.4-1 zeigt die graphische Oberfläche der Steuerungsinstanz von The Grinder 3 im Tab Skripte. Im Verzeichnisbaum sind verschiedene Testskripte aufgeführt, die im Editorfenster bearbeitet werden können. Am Beispielskript "HelloWorld.py" erkennt man die Verwendung der Skriptsprache Pyhton, die es ermöglicht, die Tests zu definieren.

3.4.1.7 Monitoring der Clients und Server

Während der Tests werden vordefinierte Graphen visualisiert, welche die Antwortzeiten und den Datendurchsatz für jeden Test darstellen. Es werden die Anzahlen der Anfragen, der Fehler, die Minimum-, Maximum- und Durchschnittsantwortzeiten und die Anzahl der Tests pro Sekunde für jeden Test angezeigt.

Die Abbildung 3.4-2 zeigt die Steuerungsinstanz des Programms The Grinder 2, welche die genannten Werte teilweise visualisiert darstellt

TheGrinder2 Echtzeitmonitorin

Abbildung 3.4-2 - The Grinder 2 - Echtzeit-Monitoring

Sowohl die Version The Grinder 2 als auch The Grinder 3 verzichten auf das Monitoring von Hardwarekomponenten.

3.4.1.8 Analyse-Möglichkeiten

Die Rohdaten werden auf jedem Lastclient gespeichert. Diese Daten müssen mit einem anderen Analysetool verarbeitet werden. Die Informationen, die während der Test durch die Steuerungsinstanz gesammelt werden, können nur für grobe Einschätzungen der Performance des Systems benutzt, bzw. nur bei weniger komplexen Systemen aussagekräftige Werte liefern.

TheGrinder2 Ergebnisse

Abbildung 3.4-3 - The Grinder 2 - Ergebnisse

3.4.1.9 Bedienbarkeit

The Grinder 2 und The Grinder 3 sind einfach gehaltene Programme, die sich leicht installieren lassen. Sie bestehen aus einer graphischen Oberfläche für die Steuerungsinstanz, über die das Erzeugen von Testskripten, das Steuern der Lastclients - nachdem diese eingerichtet sind - und das Durchführen und Monitoren der Tests erfolgen kann. Die Konfiguration der Grundlegenden Einstellungen erfolgt über Property-Dateien. Die Clientprozesse müssen auf jedem Lastclient aus der Kommandozeile gestartet werden. Zum Auswerten der Ergebnisse und Erstellen von Berichten über die durchgeführten Tests sind leider andere Tools notwendig.

Startseite - Sitemap - Impressum - nach oben
Hinzufügen zu Favoriten: Diese Seite zu Mister Wong hinzufügen

STRATO MultiServer: „Ich bin viele Server!“ 1&1 DSL

Nutzen Sie das City-Firmenportal um Ihre Firma bekannt zu machen!
Gogo Performance Berlin - Performance Gogo Girl Berlin - Gogo Tänzerin in Berlin


Performancetest Bottleneck Testtool Mercury Virtuelle User Testverfahren 

Website PromotionWebsite Promotion
Black box test White box test Grey box test testnutzer Virtuelle User Lasttest