Wir empfehlen das englische Webinar zum Thema "How QF-Test and NeoLoad can provide better load tests".

How QF-Test and NeoLoad can provide better load tests

Entwickelt von Muth Partners Dirk O. Schweier – G. Muth Partners GmbH, Wiesbaden – November 2017

Motivation für die Integration

In den Projekten, in denen Testautomatisierung oder Lasttests eine Rolle spielen, kommen nicht selten Fragen auf, die sich auf zwei Aspekte zusammenfassen lassen:

1. Die Frage nach der End User Experience

Wird ein Lasttest mit einem Lasttestwerkzeug durchgeführt, so wird in aller Regel als Antwortzeit, d.h. die Dauer zwischen Absenden eines Request und Erhalt der Response betrachtet. Oft muss der datenanfragende Browser allerdings noch nach Erhalt der Nachricht die Informationen visualisieren, z.B. in einem Browser. 
Bei heutigen Webapplikationen, bei denen HTML-Strukturen durch Skripte auf dem Client dynamisch erzeugt werden, kann es vorkommen, dass diese Visualisierung viel Zeit in Anspruch nehmen.
Von daher steht die Frage im Raum, wann der Endanwender eine Reaktion im Browser sieht. Diese Metrik wird häufig mit End User Experience bezeichnet und kann mit dieser Integration gemessen werden.

2. Die Frage nach der Migration von Testfällen

In Projekten, in denen Testautomatisierung bereits eingesetzt wird, wird im Wesentlichen mit Testausführungswerkzeugen die Funktionalität einer Anwendung getestet. Hier kommen teilweise Fragen nach Lasttests als Ergänzung der bestehenden automatisierten Tests auf. Diese sollen die Skripte der bestehenden Testautomatisierung nutzen können.
Durch die unterschiedliche Konzeption von Testausführungswerkzeugen und Lasttestwerkzeugen ist diese Wiederverwendung nur eingeschränkt möglich. Mit einer Integration der beiden Werkzeugtypen kann der Aufwand jedoch reduziert werden. Das Testausführungswerkzeug QF-Test von Quality First Software GmbH und das Lasttestwerkzeug NeoLoad bieten Schnittstellen an, auf deren Basis eine Integration entwickelt wurde, die Antworten auf die beiden oben erwähnten Fragen liefert. Mit dieser Integration lassen sich bestehende Lasttestszenarien um die Messung der End User Experience ergänzen. Der Unterschied zwischen Antwortzeit und End User Experience macht transparent, welche Zeit der Browser  für das Rendering und die Verarbeitung der Inhalte verbraucht.
Bestehende funktionale Testfälle, die in QF-Test bereits entwickelt sind, lassen sich effizient und teilweise automatisiert in NeoLoad migrieren. Damit spart die Integration zum einen Zeit für die manuelle Aufnahme der NeoLoad-Skripte und zum andren ist die Struktur der NeoLoad-Skripte mit der in QF-Test vergleichbar.

Messung der End User Experience

Seit NeoLoad Version 6.1 gibt es unter Advanced Actions die Möglichkeit, beliebige andere Programme und damit Testskripte aufzurufen. Diese Programmaufrufe lassen sich in einen User Path integrieren.
Für eine Advanced Action „Executable Test Script“ kann der Performanz-Tester eine Liste an Parametern übergeben, die dann in den Aufruf einer externen Software überführt werden. Die Reihenfolge der Parameter wird über den Namen des Parameters vorgegeben.
Mit Verwendung der von Muth Partners entwickelten Integration werden Advanced Actions bereitgestellt, die auf QF-Test abgestimmt sind. Diese Advanced Actions unterstützen spezielle Parameter, deren Reihenfolge nicht entscheidend.

 

Durch unterschiedliche Symbole der einzelnen Aktionen für QF-Test wird der User Path optisch aufbereitet.
Im Reporting einer Testdurchführung kann der Performanz-Tester auf Messwerte, wie z.B. die Dauer der Ausführung zugreifen. Diese Kurve ist aber nur bedingt aussagekräftig, da zu dieser Zeit auch die Zeiten zum Aufruf der Testausführungssoftware zu zählen sind, die aber für die Auswertung nicht transparent sind.
Mit der Nutzung der Integration der beiden Softwareprodukte lassen sich Testfälle in QF-Test über spezialisierte Advanced Actions aus NeoLoad heraus aufrufen. Aus QF-Test heraus werden die Ausführungszeiten (von z.B. Testfallknoten oder Sequenzen) an den NeoLoad Controller übermittelt.
Im linken Teil des Screenshots der oberen Abbildung erkennt man die Struktur des Testskripts von QF-Test in Form von Ordnern. Unter den Ordnern sind die Metriken (z.B. Duration oder State) zu erkennen.
Im rechten Teil des Screenshots sind zwei Graphen zu sehen. Die obere Kurve steht für die Dauer der Advanced Action und die untere Kurve für die Dauer des links selektierten Testfallsatzknoten. Die Grafik macht deutlich, wie stark die Abweichung zwischen den beiden Messwerten sein kann.
Der Performanz-Tester kann den Detaillierungsgrad der Aufzeichnung der Messwerte über Konfiguration selbst bestimmen.

Der Nutzen dieser Funktion der Integration steckt darin, dass bestehende Skripte aus QF-Test einfach in einen Lasttest integriert werden können und der Lasttest mit der Metrik der End User Experience neue Möglichkeiten einer Auswertung erhält.

Import von QF-Test Skripten in NeoLoad

Für einen Lasttest werden wenige, wesentliche Geschäftsprozesse benötigt, die dann in hoher Anzahl abgespielt werden, um auf diese Weise eine realistische Belastung des Testsystems zu erreichen.
Wenn man diese Geschäftsprozesse bereits für funktionale Tests über QF-Test entwickelt hat, dann wäre es von Vorteil, wenn man diese ohne großen Entwicklungsaufwand in NeoLoad wiederverwenden könnte. Dieses ist meist nicht so einfach möglich, da QF-Test über die Oberfläche agiert und NeoLoad sich auf das Verschicken von Anfragen und auf das Empfangen der dazugehörigen Antworten beschränkt. Somit sind die Skripte in ihrer Struktur sehr unterschiedlich. Die Idee, QF-Test entsprechend oft aus NeoLoad heraus aufzurufen, funktioniert in vielen Fällen nicht, da mehrere Browser-Instanzen auf einem Rechner sich unter Umständen gegenseitig stören können. Mit der neu realisierten Integration lassen sich Skripte, die in QF-Test entwickelt worden sind, in NeoLoad teilweise automatisiert importieren. Dazu werden die entsprechenden Skripte in QF-Test ausgeführt und von NeoLoad aufgezeichnet. In der folgenden Abbildung der linken Seite das Skript zu sehen, wie es in QF-Test hinterlegt ist. Die rechte Seite zeigt den entsprechenden Import in NeoLoad.

In dem User Path kann man die Sequenzen aus QF-Test als Transaktionen wiederfinden. Dabei finden sich in dem User Path nur die Sequenzen als Transaktion wieder, in denen Kommunikation mit dem Testsystem stattfindet.

Die in QF-Test entwickelten Skripte lassen sich mit Hilfe dieser Integration ohne große Vorbereitung übertragen. Zum Zeitpunkt der Entwicklung sind durch den Testentwickler keine Vorkehrungen in QF-Test zu treffen, um einen späteren Import zu ermöglichen.
Die Skripte müssen anschließend in NeoLoad nachbearbeitet werden, weil z.B. nicht alle dynamischen Anteile durch die Wizards von NeoLoad erkannt und entsprechend ersetzt werden.
Zudem müssen logische Aktionen, wie Verzweigungen oder Schleifen im Nachgang im User Path ergänzt werden.
Für spätere Importe von Änderungen an Skripten in QF-Test kann die Script Maintenance- Funktionalität von NeoLoad genutzt werden. In diesem Fall wird in NeoLoad die erneute Aufnahme mit dem bestehenden User Path zu einem aktualisierten User Path erzeugt. In dem aktualisierten User Path sind nach dem Import logische Aktionen und Variablen enthalten, die der Performanz-Tester zuvor angelegt hatte.

Der Nutzen dieser Funktion der Integration steckt in einem weitgehend automatisierten Import von QF-Test nach NeoLoad. Hinzu kommt, dass über die Bezeichnungen von Sequenzen und Transaktionen eine Wiedererkennung gegeben ist und bei Lasttests mit Messung der End User Experience eine aussagekräftige Auswertung ermöglicht wird.

Technische Voraussetzungen

Die Integration geht davon aus, dass QF-Test und der Lastgenerator-Dienst von NeoLoad auf einem Rechner installiert sind. Alternativ kann der Lastgenerator mit einem anderen Rechner kommunizieren, auf dem ein QF-Test Daemon läuft.
Für die Entwicklung von Testskripten unter Nutzung dieser Integration wird ein Rechner mit Windows oder Linux als Betriebssystem mit mindestens 4 GB Arbeitsspeicher empfohlen.

QF-Test

Die Integration ist mit QF-Test 4.1.6 getestet und für diese Version freigegeben.
Pro QF-Test-Instanz wird im Lasttest mindestens eine gültige Runtime-Lizenz von QF-Test benötigt.

QF-Test kann mit der Testlizenz für 4 Wochen evaluiert werden.

NeoLoad

Die Integration ist mit NeoLoad 6.1 getestet und für diese Version freigegeben. Für die Nutzung der Advanced Actions muss die Option „Integrations & Advanced Usage“ in der Lizenz enthalten sein.

Mit der Free-License von NeoLoad kann die Integration evaluiert werden.

Performance für Tester
Software-Tester

berichten über Ihre
Erfahrung mit QF-Test

Sicherheit für Entwickler
GUI Entwickler

berichten über Ihre
Erfahrung mit QF-Test

Vorteile für Entscheider
Entscheider

berichten über Ihre
Erfahrung mit QF-Test