Logische Steuerungen in Jmeter

Logische Steuerungen in Jmeter
MIN
05 Jan. 2024

Im vorherigen Tutorial haben wir Sampler und die verschiedenen Arten von Sampler-Abfragen, die in JMeter verfügbar sind, behandelt. In diesem Tutorial werden wir uns mit Logik-Controllern beschäftigen, die die Art und Weise, wie verschiedene Anfragen an den Server gesendet werden, anpassen.

Logische Steuerungen

Logik-Controller sind Prüfplanelemente, die dazu dienen, die Verarbeitungsreihenfolge von Samplern und anderen Elementen, die als untergeordnete Elemente hinzugefügt werden, anzupassen. Logik-Controller werden in erster Linie in Sampler-Anfragen verwendet, um verschiedene Anpassungen vorzunehmen, z. B. die Reihenfolge ihrer Verarbeitung zu ändern, sie als eine einzige Transaktion zu gruppieren oder Anfragen in einer Schleife auszuführen usw.

Schritte zum Starten einer Logiksteuerung – Rechtsklick auf Themengruppe -> zu Hinzufügen -> zu Logiksteuerungen -> zu den gewünschten Logiksteuerungen

Screenshot der Startanweisungen der Logiksteuerung

Warum brauchen wir logische Steuerungen?

Skripte für Leistungstests werden verwendet, um die Aktionen echter Benutzer zu simulieren. Wie ein echter Benutzer wird er mehrere Aktionen auf unterschiedliche Weise ausführen, z. B. eine Reihe von Vorgängen nacheinander (z. B. von der Anmeldeseite zur Startseite navigieren), ähnliche Arten von Vorgängen in einer Schleife ausführen (z. B. mehrere ungelesene E-Mails lesen), einige zufällige Vorgänge ausführen, usw. Um diese verschiedenen Arten von Aktionen zu simulieren, bietet JMeter verschiedene Arten von Logik-Controllern, die die Verarbeitung der Elemente in ihnen anpassen.

Werfen wir nun einen Blick auf die verschiedenen Logik-Controller, die JMeter bietet:

Critical Section Controller

Dies ist ein neu hinzugefügter Controller im JMeter-System. Stellt sicher, dass jeweils nur ein Thread auf die Slave-Elemente dieses Controllers zugreift.

ForEach Controller

Diese Steuerung wird verwendet, um Anfragen in einer Schleife auf der Grundlage der Werte einer Reihe von Bezugsvariablen auszuführen.

Wenn Controller

Mit dem If-Controller können wir eine Bedingung angeben, ob das untergeordnete Element in ihm ausgelöst wird oder nicht, basierend auf der Bedingung, die als wahr oder falsch ausgewertet werden sollte.

Controller einbeziehen

Include Controller kann verwendet werden, um Modularität in JMeter zu schaffen. Mit diesem Controller können wir eine externe .jmx-Datei (Testfragment) zu unserem bestehenden Skript hinzufügen, indem wir die jmx-Datei in den Include-Controller laden.

Interleave-Controller

Der Interleave-Controller ermöglicht es uns, in jeder Iteration der Schleife ein Kindelement aus mehreren Kindern auszuwählen und auszuführen. Wenn wir beispielsweise drei Probenehmer als Slaves zum Interleave-Controller hinzugefügt haben, wird in der ersten Iteration die erste Probenehmeranforderung ausgewählt, in der nächsten Iteration die nächste und so weiter. Wenn die untergeordneten Elemente fertig sind, beginnt die Iteration wieder beim ersten Element.

Loop Controller

Ermöglicht die Ausführung von Operationen, die als untergeordnete Elemente in einer Schleife mit dem im Bedienfeld angegebenen Iterationswert angegeben sind.

Modul-Controller

Mit dem Modul-Controller können wir ein Testfragment (z. B. einen Sampler) wieder auf unser Skript anwenden, indem wir das Modul im Modul-Controller-Bedienfeld auswählen.

Einmaliger Controller

Der Once Only-Controller wird verwendet, wenn ein Vorgang nur einmal ausgeführt werden soll, auch wenn er in einer Schleife ausgeführt wird.

Zufälliger Controller

Sie ähnelt einer Zufallssteuerung und wählt in jeder Iteration ein untergeordnetes Element aus, aber im Gegensatz zur Interleave-Steuerung wählt sie das untergeordnete Element nach dem Zufallsprinzip aus.

Random Order Controller

Der Random Order Controller wird verwendet, um jedes seiner untergeordneten Elemente höchstens einmal in zufälliger Reihenfolge auszuführen.

Aufnahme-Controller

Dieser Controller dient als Ort, an dem Skripte, die mit dem HTTP-Proxy aufgezeichnet wurden, standardmäßig aufgezeichnet werden (siehe unser Tutorial für Details zur Aufzeichnung und Wiedergabe in JMeter).

Laufzeit-Controller

Der Laufzeit-Controller wird verwendet, um die Ausführungszeit seiner untergeordneten Elemente zu begrenzen. Wenn wir z. B. einen „Laufzeit“-Wert von 100 Sekunden angegeben haben, werden die Elemente innerhalb des Laufzeit-Controllers 100 Sekunden lang mit so vielen Iterationen wie möglich ausgeführt.

Einfacher Controller

Dieser Controller dient lediglich dazu, die verschiedenen Elemente des Testplans zu gruppieren und zu organisieren.

Switch Controller

Diese Steuerung wird verwendet, um ein Element aus mehreren untergeordneten Elementen zur Verarbeitung auszuwählen. Das Element wird nicht in sequentieller oder zufälliger Reihenfolge ausgewählt, sondern auf der Grundlage des im Bedienfeld definierten Schalterwerts. Der Schalterwert kann eine Variable mit einem Wert sein, der an ihrem Index(position)-Element oder Elementnamen ausgewertet wird. Wenn beispielsweise in der ersten Iteration der Schalterwert als „3“ ausgewertet wird, wird das vierte Element zur Verarbeitung ausgewählt (der Indexwert beginnt bei 0). Ähnlich verhält es sich, wenn der Wert eines Schalters als Elementname ausgewertet wird, dann wird dieses Element zur Verarbeitung ausgewählt.

Durchsatzregler

Die Durchsatzsteuerung wird verwendet, um die Verarbeitung ihrer untergeordneten Elemente in Bezug auf die Gesamtzahl der Ausführungen oder den Prozentsatz der Ausführungen zu steuern, die in ihrem Bedienfeld angegeben sind.

Transaktions-Controller

Der Transaction Controller ist einer der am häufigsten verwendeten Controller in JMeter-Skripten. Er wird verwendet, um mehrere Sampler-Anfragen zu einer einzigen zusammenzufassen. Die Antwortzeit und andere Leistungskennzahlen des Testergebnisses werden für die gesamte Transaktion bewertet. Wenn wir zum Beispiel die Leistung der Homepage einer Anwendung überprüfen, können wir feststellen, dass der Start der Homepage eine Menge Anfragen im Backend erzeugt. Daher müssen wir alle diese Anfragen in einer einzigen Transaktion zusammenfassen, wofür wir den JMeter Transaction Controller einsetzen. Nach der Ausführung des Skripts können wir die Gesamtantwortzeit der gesamten Transaktion sehen.

Während Controller

Der While-Controller wird verwendet, um untergeordnete Elemente, die in ihm enthalten sind, auszulösen, bis der in seinem Bedienfeld angegebene Wert als „false“ ausgewertet wird.