Was ist der Logic Controller?
Mit Logik-Controllern können Sie die Reihenfolge der Verarbeitungsanforderung in einem Thread definieren. Hier können Sie steuern, wann eine Benutzeranforderung an einen Webserver gesendet werden soll. Beispielsweise können Sie Zufallscontroller verwenden, um HTTP-Anforderungen zufällig an den Server zu senden
Logikcontroller bestimmen die Reihenfolge, in der die Benutzeranforderung ausgeführt wird.
Einige häufig verwendete Logikcontroller sind unten aufgeführt:
Aufnahmesteuerung:
JMeter kann Ihre Testschritte aufzeichnen . Ein Aufzeichnungscontroller ist ein Platzhalter zum Speichern dieser Aufzeichnungsschritte.
Einfache Steuerung:
Simple Controller ist nur ein Container für Benutzeranfragen.
Schleifenregler:
Loop Controller lässt die Benutzeranforderung eine bestimmte Anzahl von Malen oder für immer ausgeführt werden, wie in Abbildung gezeigt:
Zufälliger Controller:
Random Controller lässt alle Benutzeranforderungen in jeder Schleifenperiode in zufälliger Reihenfolge ausgeführt werden.
Beispielsweise haben Sie 3 Benutzeranfragen an die Website http://www.google.com in der folgenden Reihenfolge:
- HTTP-Anfrage
- FTP-Anfrage
- JDBC-Anfrage
Diese 3 Anforderungen sollten 5 Mal ausgeführt werden. Insgesamt 15 Nutzeranfragen werden von JMeter an den Google-Server gesendet.
In sequentieller Reihenfolge werden Anforderungen nacheinander in der folgenden Reihenfolge gesendet :
HTTP-Anfrage -> FTP-Anfrage-> JDBC-Anfrage
für jede Schleife.
In zufälliger Reihenfolge werden Anfragen als zufällig gesendet ,
FTP-Anfrage -> HTTP-Anfrage-> JDBC-Anfrage
Oder
JDBC-Anfrage -> FTP-Anfrage-> HTTP-Anfrage
Für jede Schleife.
Modulsteuerung:
Das Ziel von Module Controller ist es, JMeter modularer zu gestalten.
Die allgemeine Idee ist, dass Webanwendungen aus kleinen Funktionseinheiten bestehen (z. B. Anmelden, Konto erstellen, Abmelden…). Diese Funktionalität kann in Simple Controller als "Module" gespeichert werden. Der Modul-Controller wählt aus, welches Modul ausgeführt werden soll.
Stellen Sie sich das folgende Szenario vor:
Sie möchten simulieren:
- 50 Benutzer melden sich ab ,
- 100 Benutzer melden sich an
- 30 Nutzer suchen auf www.google.com
Mit JMeter können Sie 3 Module erstellen. Jedes Modul simuliert jede Benutzeraktivität: Anmelden, Abmelden und Suchen.
Die Modulsteuerung wählt aus, welches Modul ausgeführt werden soll.
Andere wichtige Controller:
- Interleave Controller: Nimmt eine der Benutzeranforderungen auf und führt sie in jeder Schleife des Threads aus.
- Runtime Controller: Steuert, wie lange die untergeordneten Elemente ausgeführt werden dürfen.
Wenn Sie beispielsweise Runtime Controller 10 Sekunden angegeben haben, führt JMeter Ihren Test 10 Sekunden lang aus.
- Transaction Controller: Misst die Gesamtzeit, die zum Beenden einer Testausführung benötigt wird
- Controller einschließen : Entwickelt einen externen Testplan. Mit diesem Controller können Sie mehrere Testpläne in JMeter verwenden. Weitere Informationen finden Sie unter JMeter-Leistungstests.
Beispiel für einen Schleifencontroller
In diesem Abschnitt erfahren Sie Schritt für Schritt, wie Sie Ihrem aktuellen Leistungstestplan einen Loop Controller- Satz hinzufügen .
Der Loop-Controller lässt die Sampler zusätzlich zu dem für die Thread-Gruppe angegebenen Loop-Wert eine bestimmte Anzahl von Malen ausführen. Zum Beispiel, wenn Sie
- Fügen Sie einem Loop-Controller eine HTTP-Anforderung mit einer Loop-Anzahl von 50 hinzu
- Konfigurieren Sie die Anzahl der Thread-Gruppenschleifen auf 2
- Anschließend sendet JMeter insgesamt 50 * 2 = 100 HTTP-Anforderungen.
Dies ist die Roadmap dieses Beispiels:
Schritt 1) Konfigurieren der Thread-Gruppe
Wir verwenden die Schritte 1, 2 im Tutorial JMeter Performance Testing erneut.
-
Thread-Gruppe hinzufügen
Klicken Sie mit der rechten Maustaste auf den Testplan und fügen Sie eine neue Thread-Gruppe hinzu: Hinzufügen -> Threads (Benutzer) -> Thread-Gruppe
Geben Sie in der Systemsteuerung für Thread-Gruppen die Thread-Eigenschaften wie folgt ein:
Es macht eine Benutzeranforderung an den Webserver google.com und führen Sie es 2 mal.
-
Fügen Sie JMeter-Elemente hinzu
Fügen Sie standardmäßig eine HTTP-Anforderung zu www.google.com hinzu.
-
Loop-Controller hinzufügen
Klicken Sie mit der rechten Maustaste auf Thread-Gruppe -> Logik-Controller -> Loop-Controller
Schritt 2) Konfigurieren des Loop-Controllers
Fügen Sie dem Feld Loop Count den Wert 50 hinzu (siehe Abbildung unten). Es wird eine Benutzeranforderung an den Webserver google.com 50 Mal ausführen , zusätzlich zu dem Schleifenwert = 2, den Sie oben für die Thread-Gruppe angegeben haben. JMeter sendet also insgesamt 2 * 50 = 100 HTTP-Anforderungen.
Klicken Sie mit der rechten Maustaste auf Loop Controller, Hinzufügen -> Sampler -> HTTP-Anforderung
Schritt 3) Fügen Sie die Ansichtsergebnisse zur Tabelle hinzu
Wir verwenden Schritt 2 im Timer erneut, um die Ansichtsergebnisse in die Tabelle aufzunehmen
Der Testplan ist also in der folgenden Abbildung dargestellt
Schritt 4) Führen Sie Ihren Test aus
Kehren Sie nun Ergebnisse in Tabelle anzeigen zurück und klicken Sie in der Menüleiste auf die Schaltfläche Start (Strg + R), um einen Test auszuführen
Wie in der folgenden Abbildung gezeigt, simuliert JMeter eine Benutzeranforderung, die 100 Mal an den Webserver http://www.google.com/ gesendet wird. Der Test wird gestoppt, nachdem eine Benutzeranforderung 100 Mal gesendet wurde.
Fehlerbehebung:
- Wenn Sie beim Ausführen des obigen Szenarios auf das Problem stoßen, gehen Sie wie folgt vor
- Überprüfen Sie, ob Sie über einen Proxy eine Verbindung zum Internet herstellen. Wenn ja, entfernen Sie den Proxy.
- Öffnen Sie eine neue Instanz von Jmeter
- Öffnen Sie die Datei ControllerTestPlan.jmx in Jmeter
- Klicken Sie auf Thread-Gruppe -> Ergebnis in Tabelle anzeigen
- Führen Sie den Test aus