4. Erstellen eines Webtestplans

In diesem Abschnitt erfahren Sie, wie Sie einen grundlegenden Testplan zum Testen einer Website erstellen. Sie erstellen fünf Benutzer, die Anforderungen an zwei Seiten der JMeter-Website senden. Außerdem weisen Sie die Benutzer an, ihre Tests zweimal auszuführen. Die Gesamtzahl der Anfragen ist also (5 Benutzer) x (2 Anfragen) x (2 Mal wiederholen) = 20 HTTP-Anfragen. Um den Testplan zu erstellen, verwenden Sie die folgenden Elemente: Thread Group , HTTP Request , HTTP Request Defaults und Graph Results .

Einen erweiterten Testplan finden Sie unter Erstellen eines erweiterten Webtestplans .

4.1 Benutzer hinzufügen ¶

Der erste Schritt, den Sie mit jedem JMeter-Testplan machen möchten, ist das Hinzufügen eines Thread Group- Elements. 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.

Fahren Sie fort und fügen Sie das ThreadGroup-Element hinzu, indem Sie zuerst den Testplan auswählen, mit der rechten Maustaste klicken, um das Menü „Hinzufügen“ aufzurufen, und dann „Hinzufügen“ → „ThreadGroup“ auswählen.

Sie sollten jetzt das Element Threadgruppe unter Testplan sehen. Wenn Sie das Element nicht sehen, „erweitern“ Sie die Testplanstruktur, indem Sie auf das Element Testplan klicken.

Als nächstes müssen Sie die Standardeigenschaften ändern. 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 4.1 unten).


Abbildung 4.1.  Thread-Gruppe mit Standardwerten
Abbildung 4.1. 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 5.

Belassen Sie im nächsten Feld Ramp-Up Period den Standardwert von 1 Sekunde. 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.

Geben Sie schließlich im Feld Loop Count den Wert 2 ein. Diese Eigenschaft teilt JMeter mit, wie oft der Test wiederholt werden soll. Wenn Sie einen Loop-Count-Wert von 1 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 4.2 für die vollständige JMeter-Benutzer-Thread-Gruppe.


Abbildung 4.2.  JMeter-Benutzer-Thread-Gruppe
Abbildung 4.2. JMeter-Benutzer-Thread-Gruppe

4.2 Hinzufügen von Standard-HTTP-Anforderungseigenschaften

Nachdem wir unsere Benutzer definiert haben, ist es an der Zeit, die Aufgaben zu definieren, die sie ausführen werden. In diesem Abschnitt legen Sie die Standardeinstellungen für Ihre HTTP-Anforderungen fest. Und dann fügen Sie in Abschnitt 4.3 HTTP-Request-Elemente hinzu, die einige der hier angegebenen Standardeinstellungen verwenden.

Wählen Sie zunächst das Element JMeter Users (Thread Group) aus. Klicken Sie mit der rechten Maustaste, um das Menü „Hinzufügen“ aufzurufen, und wählen Sie dann „Hinzufügen“ → „Konfigurationselement“ → „Standardeinstellungen für HTTP-Anforderungen“. Wählen Sie dann dieses neue Element aus, um sein Bedienfeld anzuzeigen (siehe Abbildung 4.3).


Abbildung 4.3.  Standardeinstellungen für HTTP-Anforderungen
Abbildung 4.3. Standardeinstellungen für HTTP-Anforderungen

Wie die meisten JMeter-Elemente hat das Control Panel HTTP Request Defaults ein Namensfeld, das Sie ändern können. Belassen Sie in diesem Beispiel dieses Feld mit dem Standardwert.

Fahren Sie mit dem nächsten Feld fort, dem Servernamen/IP des Webservers. Für den von Ihnen erstellten Testplan werden alle HTTP-Anforderungen an denselben Webserver, jmeter.apache.org, gesendet. Geben Sie diesen Domänennamen in das Feld ein. Dies ist das einzige Feld, für das wir einen Standardwert angeben, also belassen Sie die restlichen Felder mit ihren Standardwerten.

Das Element „HTTP Request Defaults“ weist JMeter nicht an, eine HTTP-Anforderung zu senden. Es definiert einfach die Standardwerte, die die HTTP-Request-Elemente verwenden.

Siehe Abbildung 4.4 für das fertige HTTP Request Defaults-Element


Abbildung 4.4.  HTTP-Standardeinstellungen für unseren Testplan
Abbildung 4.4. HTTP-Standardeinstellungen für unseren Testplan

4.3 Cookie-Unterstützung hinzufügen ¶

Fast alle Webtests sollten Cookie-Unterstützung verwenden, es sei denn, Ihre Anwendung verwendet ausdrücklich keine Cookies. Um Cookie-Unterstützung hinzuzufügen, fügen Sie einfach einen HTTP-Cookie-Manager zu jeder Thread-Gruppe in Ihrem Testplan hinzu. Dadurch wird sichergestellt, dass jeder Thread seine eigenen Cookies erhält, die jedoch von allen HTTP-Anforderungsobjekten gemeinsam genutzt werden.


Abbildung 4.5.  HTTP-Cookie-Manager
Abbildung 4.5. HTTP-Cookie-Manager

Um den HTTP-Cookie-Manager hinzuzufügen, wählen Sie einfach die Thread-Gruppe aus und wählen Sie „Hinzufügen“ → „Konfigurationselement“ → „HTTP-Cookie-Manager“, entweder im Menü „Bearbeiten“ oder im Popup-Menü mit der rechten Maustaste.

4.4 Hinzufügen von HTTP-Anforderungen

In unserem Testplan müssen wir zwei HTTP-Anforderungen stellen. Der erste ist für die JMeter-Startseite (http://jmeter.apache.org/) und der zweite für die Seite „Änderungen“ (http://jmeter.apache.org/changes.html).

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

Beginnen Sie mit dem Hinzufügen der ersten HTTP-Anforderung zum JMeter-Benutzerelement (Hinzufügen → Sampler → HTTP-Anforderung). Wählen Sie dann im Baum das Element HTTP Request aus und bearbeiten Sie die folgenden Eigenschaften (siehe Abbildung 4.6):

  1. Ändern Sie das Feld „Name“ in „Startseite“.
  2. Setzen Sie das Pfadfeld auf „/“. Denken Sie daran, dass Sie das Feld Servername nicht festlegen müssen, da Sie diesen Wert bereits im Element HTTP Request Defaults angegeben haben.


Abbildung 4.6.  HTTP-Anforderung für die JMeter-Startseite
Abbildung 4.6. HTTP-Anforderung für die JMeter-Startseite

Fügen Sie als Nächstes den zweiten HTTP-Request hinzu und bearbeiten Sie die folgenden Eigenschaften (siehe Abbildung 4.7:

  1. Ändern Sie das Feld „Name“ in „Änderungen“.
  2. Setzen Sie das Pfadfeld auf „/changes.html“.


Abbildung 4.7.  HTTP-Anforderung für JMeter-Änderungsseite
Abbildung 4.7. HTTP-Anforderung für JMeter-Änderungsseite

4.5 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 Graph Results Listener hinzu (Add → Listener → Backend Listener).

4.6 Anmelden bei einer Website

Dies ist hier nicht der Fall, aber einige Websites verlangen, dass Sie sich anmelden, bevor Sie bestimmte Aktionen ausführen können. In einem Webbrowser wird das Login als Formular für den Benutzernamen und das Passwort sowie eine Schaltfläche zum Absenden des Formulars angezeigt. Die Schaltfläche generiert eine POST-Anforderung und übergibt die Werte der Formularelemente als Parameter.

Fügen Sie dazu in JMeter eine HTTP-Anfrage hinzu und setzen Sie die Methode auf POST. Sie müssen die Namen der vom Formular verwendeten Felder und die Zielseite kennen. Diese können durch Einsehen des Codes der Login-Seite herausgefunden werden. [Falls dies schwierig ist, können Sie den JMeter Proxy Recorder verwenden , um die Anmeldesequenz aufzuzeichnen.] Legen Sie den Pfad zum Ziel der Schaltfläche „Senden“ fest. Klicken Sie zweimal auf die Schaltfläche Hinzufügen und geben Sie den Benutzernamen und das Passwort ein. Manchmal enthält das Anmeldeformular zusätzliche versteckte Felder. Diese müssen ebenfalls hinzugefügt werden.


Abbildung 4.8.  Beispiel für eine HTTP-Anmeldeanforderung
Abbildung 4.8. Beispiel für eine HTTP-Anmeldeanforderung

4.7 denselben Benutzer oder verschiedene Benutzer auswählen

Beim Erstellen eines Testplans können wir bei jeder Iteration der Thread-Gruppe auswählen, dass derselbe Benutzer mehrere Iterationen ausführt oder verschiedene Benutzer eine Iteration ausführen. Sie können dieses Verhalten für das Thread-Gruppenelement konfigurieren und den HTTP-Cache-Manager, den HTTP-Cookie-Manager und den HTTP-Autorisierungs-Manager von dieser Einstellung steuern lassen.


Abbildung 4.9.  Wählen Sie denselben Benutzer oder verschiedene Benutzer aus
Abbildung 4.9. Wählen Sie denselben Benutzer oder verschiedene Benutzer aus

Sie können die Cookies/Cache-Inhalte/Autorisierungen im CookieManager/CacheManager/Authorization Manager löschen oder von der Thread-Gruppe gesteuert werden.


Abbildung 4.10.  Verwenden Sie Thread Group, um CookieManager zu steuern
Abbildung 4.10. Verwenden Sie Thread Group, um CookieManager zu steuern

Abbildung 4.11.  Verwenden Sie Thread Group, um CacheManager zu steuern
Abbildung 4.11. Verwenden Sie Thread Group, um CacheManager zu steuern

Abbildung 4.12.  Verwenden Sie die Thread-Gruppe, um den Autorisierungs-Manager zu steuern
Abbildung 4.12. Verwenden Sie die Thread-Gruppe, um den Autorisierungs-Manager zu steuern
Go to top