SoapUI: Lasttest

Mit SoapUI ist es relativ einfach möglich, kleine Lasttests zu realisieren. Dabei kann man auch - mit den nötigen Groovy-Kenntnissen - den Request dynamisch mit Daten befüllen.

Ausgangsbasis ist die WSDL des Service, welchen man testen möchte. Damit wird ein neues Projekt im SoapUI erzeugt. Den Request kann man ggf. den Anforderungen anpassen.

image0

Für den Lasttest muss man einen sog. TestCase auf Basis eines Requests erstellen.

image1

Innerhalb des aktuellen Projekts wird jetzt ein neuer Unterpunkt mit dem Namen des TestCases angezeigt. Ausserdem wurde der Request mit in den TestCase kopiert. Diese Kopie wird in dem TestCase benutzt.

image2

Ein weiterer Unterpunkt ist der LoadTest. Ein neuer LoadTest führt alle TestSteps pro Lauf aus - im Beispiel wird nur der Request abgeschickt, da es (noch) keine weiteren TestSteps gibt.

image3

Es besteht aber auch die Möglichkeit, weitere Schritte innerhalb eines TestCase durchzuführen. Dafür kann man einen neuen TestStep hinzufügen. Ich entscheide mich für ein Groovy Script - so kann ich für jeden Testlauf den Request beeinflussen.

image4

Wichtig ist der Name des TestSteps - dieser sollte keine Leerzeichen enthalten - ich hatte zumindest Probleme damit.
Für das einfache Beispiel definiere ich eine Variable "result", der ich eine Pseudo-Zufallszahl zuweise.

image5

Jetzt kann man in der Request auf diese Variable zugreifen.

image6

Jetzt sollte für jeden ausgeführten TestStep ein neuer Wert für das Element "id" erzeugt werden.
Mit diesem Verfahren besteht auch die Möglichkeit, z.B. Base64-kodierte Objekte für dem Absenden zu manipulieren, da vor dem Absenden des Request immer das Groovy-Skript ausgeführt wird.

image7