9. Erstellen eines WebService-Testplans

In diesem Abschnitt erfahren Sie, wie Sie einen Testplan erstellen , um einen WebService zu testen. Sie erstellen fünf Benutzer, die Anfragen an One page senden. Außerdem weisen Sie die Benutzer an, ihre Tests zweimal auszuführen. Die Gesamtzahl der Anfragen ist also (5 Benutzer) x (1 Anfrage) x (2 Mal wiederholen) = 10 HTTP-Anfragen. Um den Testplan zu erstellen, verwenden Sie die folgenden Elemente: Thread Group , HTTP Request und Aggregate Graph .

Wenn der Sampler einen Fehler vom Webdienst zu erhalten scheint, überprüfen Sie die SOAP-Nachricht noch einmal und stellen Sie sicher, dass das Format korrekt ist. Stellen Sie insbesondere sicher, dass die xmlns- Attribute genau mit denen der WSDL übereinstimmen. Wenn der XML-Namespace unterschiedlich ist, gibt der Webdienst wahrscheinlich einen Fehler zurück.

9.1 WebService-Testplan erstellen

In unserem Testplan verwenden wir einen .NET-Webdienst. Wir werden nicht auf die Details des Schreibens eines Webservice eingehen. Wenn Sie nicht wissen, wie man einen Webservice schreibt, googeln Sie nach Webservice und machen Sie sich mit dem Schreiben von Webservices für Java und .NET vertraut. Es sollte beachtet werden, dass es einen signifikanten Unterschied zwischen der Implementierung von Webdiensten durch .NET und Java gibt. Das Thema ist zu weit gefasst, um es in der Bedienungsanleitung zu behandeln. Bitte beziehen Sie sich auf andere Quellen, um eine bessere Vorstellung von den Unterschieden zu bekommen.

JMeter sendet Anfragen in der Reihenfolge, in der sie im Baum erscheinen.

Beginnen Sie mit dem Menü Datei  →  Vorlagen… und wählen Sie die Vorlage „ Building a SOAP Webservice Test Plan “ aus. Klicken Sie dann auf die Schaltfläche " Erstellen ".


Abbildung 9.1.0.  Webservice-Vorlage
Abbildung 9.1.0. Webservice-Vorlage
Folgendes ändern:
  1. Ändern Sie in " HTTP Request Defaults " den " Server Name of IP " .
  2. Ändern Sie in " Soap Request " den " Path: "
    Abbildung 9.1.1 Webservice-Pfad
    Abbildung 9.1.1 Webservice-Pfad

Wählen Sie als Nächstes „ HTTP Header Manager “ und aktualisieren Sie den Header „ SOAPAction “, damit er zu Ihrem Webservice passt. Einige Webdienste verwenden SOAPAction möglicherweise nicht. Entfernen Sie es in diesem Fall.
Derzeit verwendet nur .NET SOAPAction, daher ist es normal, eine leere SOAPAction für alle anderen Webservices zu haben. Die Liste umfasst JWSDP, Weblogic, Axis, The Mind Electric Glue und gSoap.

Abbildung 9.1.2 Webservice-Header
Abbildung 9.1.2 Webservice-Header

Der letzte Schritt besteht darin, die SOAP-Nachricht in den Textbereich „ Body Data “ einzufügen.

Abbildung 9.1.3 Webservice-Body
Abbildung 9.1.3 Webservice-Body

9.2 Benutzer hinzufügen ¶

Die Thread-Gruppe teilt JMeter mit, wie viele Benutzer Sie simulieren möchten, wie oft die Benutzer Anfragen senden sollen und wie viele Anfragen sie senden sollen.

Wählen Sie das Element Thread Group in der Baumstruktur aus, falls Sie es noch nicht ausgewählt haben. Sie sollten jetzt das Thread Group Control Panel im rechten Bereich des JMeter-Fensters sehen (siehe Abbildung 9.2 unten).


Abbildung 9.2.  Thread-Gruppe mit Standardwerten
Abbildung 9.2. Thread-Gruppe mit Standardwerten

Geben Sie zunächst einen aussagekräftigeren Namen für unsere Thread-Gruppe an. Geben Sie im Namensfeld JMeter-Benutzer ein.

Erhöhen Sie als Nächstes die Anzahl der Benutzer (Threads genannt) auf 10.

Belassen Sie im nächsten Feld Ramp-Up Period den Standardwert von 0 Sekunden. Diese Eigenschaft teilt JMeter mit, wie lange zwischen dem Starten jedes Benutzers gewartet werden soll. Wenn Sie beispielsweise eine Ramp-Up-Periode von 5 Sekunden eingeben, beendet JMeter den Start aller Ihrer Benutzer am Ende der 5 Sekunden. Wenn wir also 5 Benutzer und eine Ramp-Up-Periode von 5 Sekunden haben, beträgt die Verzögerung zwischen dem Start von Benutzern 1 Sekunde (5 Benutzer / 5 Sekunden = 1 Benutzer pro Sekunde). Wenn Sie den Wert auf 0 setzen, startet JMeter sofort alle Ihre Benutzer.

Deaktivieren Sie abschließend das Kontrollkästchen „ Forever “ und geben Sie im Feld „Loop Count “ den Wert 2 ein. Diese Eigenschaft teilt JMeter mit, wie oft der Test wiederholt werden soll. Wenn Sie einen Schleifenzählerwert von 0 eingeben , führt JMeter Ihren Test nur einmal aus. Damit JMeter Ihren Testplan wiederholt ausführt, aktivieren Sie das Kontrollkästchen Forever .

In den meisten Anwendungen müssen Sie Änderungen, die Sie in einem Control Panel vornehmen, manuell akzeptieren. In JMeter akzeptiert das Control Panel Ihre Änderungen jedoch automatisch, sobald Sie sie vornehmen. Wenn Sie den Namen eines Elements ändern, wird der Baum mit dem neuen Text aktualisiert, nachdem Sie die Systemsteuerung verlassen (z. B. wenn Sie ein anderes Baumelement auswählen).

Siehe Abbildung 9.2 für die vollständige JMeter-Benutzer-Thread-Gruppe.


Abbildung 9.3.  JMeter-Benutzer-Thread-Gruppe
Abbildung 9.3. JMeter-Benutzer-Thread-Gruppe

9.3 Hinzufügen eines Listeners zum Anzeigen und Speichern der Testergebnisse

Das letzte Element, das Sie Ihrem Testplan hinzufügen müssen, ist ein Listener . Dieses Element ist dafür verantwortlich, alle Ergebnisse Ihrer HTTP-Anforderungen in einer Datei zu speichern und ein visuelles Modell der Daten darzustellen.

Wählen Sie das Element JMeter Users und fügen Sie einen Aggregate Graph Listener hinzu ( Add  →  Listener  →  Aggregate Graph ). Als nächstes müssen Sie ein Verzeichnis und einen Dateinamen der Ausgabedatei angeben. Sie können ihn entweder in das Dateinamenfeld eingeben oder die Schaltfläche Durchsuchen auswählen und zu einem Verzeichnis navigieren und dann einen Dateinamen eingeben.


Abbildung 9.4.  Listener für Diagrammergebnisse
Abbildung 9.4. Listener für Diagrammergebnisse

9.4 Rest-Webservice

Das Testen eines REST-Webservices ist sehr ähnlich, da Sie nur die HTTP-Anforderung ändern müssen

  • Methode : Wählen Sie die Methode aus, die Sie testen möchten
  • Body Data : Dies kann JSON, XML oder ein beliebiger benutzerdefinierter Text sein
Möglicherweise müssen Sie auch den „ HTTP Header Manager “ ändern, um den richtigen „ Content-Type “ auszuwählen.

Go to top