logo

JMeter Tutorial 4: Stepping Thread Group

Von am 14.01.2019

Bis jetzt haben wir zum Simulieren virtueller Benutzer immer nur eine normale Thread-Group verwendet, die bereits die Core-Version von JMeter mitliefert. So konnten wir die Anzahl der Zugriffe, (also die Anzahl der Benutzer), die Anzahl der Durchläufe (Loops) sowie die Ramp-Up-Period (Maximalser Belastung) anhand eines Zeitwertes definieren. Es gibt aber auch die Möglichkeit, weitere Parameter mit einzubeziehen, was die Anzahl der Requests im zeitlichen Verlauf betrifft.  Mit einer Stepping-Thread-Group können Ramp-up- und Ramp-down Time genauer definiert werden.

Dieser Blogbeitrag ist der vierte Teil einer JMeter-Serie und setzt grundlegende JMeter-Kenntnisse voraus. Neueinsteigern empfehle ich, vorerst die drei vorangegangenen Blogartikel zu lesen oder noch besser: durchzuarbeiten. Am Ende dieses Beitrages wird darauf verlinkt.

Realistischer Usertest

In unserem vierten Tutorial wollen wir nun einen realistischen Usertest erstellen. Wie es der Name schon sagt, kommt ein realistischer Usertest dem tatsächlichen Surf-Verhalten der Benutzer sehr nahe. Zunächst muss aber geklärt sein, was genau ein realistischer User-Test überhaupt ist bzw. welche Kriterien er zu erfüllen hat, um als ein solch einer zu gelten.

Das wichtigste Kriterium  in diesem Kontext ist die sog. Think-Time. In der Praxis liegt zwischen den einzelnen Requests immer ein kleiner Delay vor – nämlich jene Zeit, in der der Benutzer auf der Seite verweilt. Diese Zeit nennt man Think-Time. Sie ist natürlich nicht immer konstant, sondern unterliegt mehr oder weniger starken Schwankungen. Dafür werden wir den sogenannten Random-Timer verwenden. Dieser bestimmt die Random-Time per Zufallsgenerator, durch die Eingabe eines Minimal- und Maximalwertes.

Wozu eine Stepping Thread-Group?

Eine Stepping Thread-Group ist ein hervorragendes Feature zum detaillierten Konfigurieren von Threads. Mit einer herkömmlichen Thread-Group konnten wir die Dauer der Ramp-up- und Ramp-down-Time lediglich linear definieren, und damit nur sicherstellen, dass beispielsweise nach 20 Sekunden eine Auslastung von 200 Usern besteht. Mit einer Stepping Thread-Group haben wir nun die Möglichkeit, die Userlast portionsweise zu steigern, wie wir in der nachstehenden Grafik erkennen:

Abb. 1: Stepping Thread-Group mit eingezeichneten Kenngrößen

Abb. 1: Stepping Thread-Group mit eingezeichneten Kenngrößen

Mit einer Stepping Thread-Group können folgende Parameter definiert werden:

  • Start-Delay: Jene Zeit, die verstreicht, bis der Test startet.
  • Anzahl der Start-Threads (auch: Target-Load): Der Test startet mit xy User
  • Ramp-up-Period: alle x Sekunden kommen weitere y User hinzu
  • Ramp-down-Period: alle x Sekunden kommen  y User weg
  • Load-Time: Jene Zeitspanne, in der die Plattform mit dem Maximum an Threads belastet wird

Download und Installation

Zunächst benötigen den Plug-In-Manager, um später das Plugin-Stepping-Thread-Group installieren zu können. Diesen gibt es hier zum Download.

Ist der Download abgeschlossen, legen wir das Jar-File in den Ordner „lib/ext“ und starten JMeter neu. Nun gib es im Menüpunkt „Options“ ganz unten den Punkt „Plugins Manager“, den wir nun verwenden. Im Reiter „Availables Plugins“ suchen wir nach dem Eintrag „jpgc-Standard Set“ und werden relativ weit unten fündig. Hier setzen wir das Häckchen und klicken rechts unten auf „Apply…“.

Nun können wir  die Stepping Thread-Group unserem Testplan hinzufügen: Rechtsklick / Hinzufügen / Threads / Stepping Thread-Group

In der nachstehenden Eingabemaske können wir nun die Parameter von Abbildung 1 definieren.

Abb. 2: Stepping Thread Group in JMeter

Abb. 2: Stepping Thread Group in JMeter

 

 

 

Testplan erstellen

Wurde die Stepping-Thread-Group erfolgreich installiert und konfiguriert, solle der Rest eigentlich kein Problem mehr darstellen. Nun können wir die Stepping Thread-Group mit HTTP-Request befüllen und dazwischen jeweils die Random-Timer (Hinzufügen / Zeitgeber / Uniform Random Timer) einfügen. Unser Testplan sollte nun in etwa so aussehen:

Abb. 3: Testplan mit integrierter Stepping Thread-Group

Abb. 3: Testplan mit integrierter Stepping Thread-Group

 

Vorteile in der Praxis

Was die Auswertung des Tests betrifft, ergibt sich für uns in der Praxis nun ein wesentlicher Vorteil: Wir können leichter herausfinden, wo die Belastungsgrenze des zu testendem Systems liegt. Denn durch das schrittweise hinzufügen von virtuellen Benutzern, kennen wir die genaue Anzahl zu jedem Zeitpunkt, anders als bei einer normalen Thread-Group.

Weitere Tutorials

JMeter Tutorial 1: Grundlagen, Listeners und Assertions

JMeter Tutorial 2: DB, Web-Services und FTP

JMeter Tutorial 3: Test Script Recording

The comments are closed.