jmeter processors controllers
Übersicht über Vorprozessoren und Controller in JMeter (Teil III):
=> Folgen Sie hier einer umfassenden Reihe kostenloser JMeter-Tutorials
Dieser Artikel führt Benutzer durch die Verwendung von Vorprozessoren, Postprozessoren und Controllern in JMeter. Controller sind sehr nützlich, da sie Ihre Testszenarien erstellen.
Möglicherweise möchten Sie verschiedene Szenarien testen, in denen Sie Ihre eigene Sequenz einer Anforderung konfigurieren möchten, die an einen Server gesendet wird, um die Antwortzeit und andere Leistungsfaktoren zu überwachen.
Was du lernen wirst:
- Vorprozessoren
- Benutzerparameter
- Beispiel Timeout
- Controller
- Echtzeitbeispiel
- JMeters Aufnahmevorlage
- Fazit
- Literatur-Empfehlungen
Vorprozessoren
Dies sind die Elemente, die ausgeführt werden, bevor ein Sampler ausgeführt wird. Sie können den Pre-Processor an den Sampler anhängen, für den Sie einige Änderungen an der Anforderung vornehmen möchten.
Der einfachste Fall könnte darin bestehen, einen Präprozessor 'Sample Timeout' mit einer HTTP-Anforderung hinzuzufügen, damit diese Anforderung nur für eine definierte Zeitspanne ausgeführt wird. Außerdem wird sichergestellt, dass diese Änderung nur für den übergeordneten Sampler durchgeführt wird.
Im Folgenden sind einige der in JMeter verwendeten Vorprozessoren aufgeführt:
- Bean Shell Pre-Prozessor
- HTML Link Parser
- HTTP-URL neu schreiben
- JDBC-Präprozessor
- Beispiel-Timeout
- Benutzerparameter
Die am häufigsten verwendeten werden im Folgenden anhand von Beispielen erläutert. Möglicherweise benötigen Sie nicht alle in Ihren Projekten. Versuchen Sie, die Szenarien für Ihr Projekt zu identifizieren und diejenigen zu implementieren, mit denen Sie Echtzeit-Leistungsszenarien abdecken können.
Benutzerparameter
Benutzerparameter werden verwendet, um Werte für die Variablen zu definieren, bevor sie in den Samplern verwendet werden. Wenn JMeter dieses Pre-Processor-Element ausführt, speichert es die Werte in den Variablen, auf die von Samplern innerhalb derselben Thread-Gruppe verwiesen werden kann.
So melden Sie sich für Produkttests an
Wenn Sie mehr Threads als die Anzahl der Benutzer in 'Benutzerparameter' als zusätzliche Threads haben, werden die Werte erneut durchlaufen.
Zum Beispiel, Sie haben 5 Benutzer in Ihrer Thread-Gruppe, aber nur 3 im Pre-Prozessor, dann Ihre 4thund eine 5thThread wird verwendet param1 und param2 .
Beispiel Timeout
Dieser Vorprozessor wird verwendet, um die Zeitüberschreitungsdauer für Anforderungen zu definieren.
Zum Beispiel, Wenn Sie eine Beispielzeit von 400 Millisekunden festgelegt haben, werden alle Anforderungen, deren Zeit> 400 ist, nicht beantwortet. Bitte sehen Sie die folgenden Screenshots.
Controller
Controller sind sehr wichtig für die Erstellung eines Echtzeit-JMeter-Testplans. Es definiert die Reihenfolge, in der die Anforderungen an den Server gesendet werden.
Zum Beispiel, Wenn Sie eine Webanwendung testen möchten, in der die Anmeldung einmal erfolgen und gesucht werden soll, müssen die Artikelauswahlanforderungen für alle Iterationen einzeln ausgeführt werden. Controller ermöglichen dies, indem sie den Anforderungsfluss verwalten, der auf dem zu testenden Server ausgeführt wird.
Nachfolgend finden Sie die am häufigsten verwendeten Controller in JMeter
- Einfache Steuerung
- Modulsteuerung
- Einmaliger Controller
- Interleave Controller
- Loop-Controller
- Wenn Controller
- Für jeden Controller
- Aufnahmesteuerung usw.
Einfache Steuerung
Die einfache Steuerung führt keine bestimmte Funktion aus. Es ist nur eine Art Container, in dem Sie ähnliche Anforderungen aufbewahren können, um Ihren Testplan leicht verständlich zu machen.
Loop-Controller
Wenn Sie möchten, dass eine bestimmte Anforderung mehr Iterationen ausführt als in der Thread-Gruppe angegeben, können Sie sie unter Loop Controller einfügen und die Anzahl der Loops in den Controller-Einstellungen eingeben.
Beispiel: Wenn Sie eine Thread-Gruppe mit 1 Benutzer und 3 Iterationen haben, werden alle Ihre Anforderungen unter dieser Gruppe dreimal ausgeführt. Wenn Sie nun zwei HTTP-Sampler unter einem Loop-Controller mit Loop-Anzahl 2 haben, werden diese beiden Sampler 1 * 3 * 2 = 6 Mal ausgeführt.
Bitte beachten Sie die folgenden Screenshots, die dies weiter erläutern
Einmaliger Controller
Dieser Controller wird verwendet, wenn Sie eine bestimmte Anforderung nur einmal ausführen möchten, selbst wenn Sie mehrere Threads in der Thread-Gruppe haben. Das einfachste Beispiel, das in Betracht gezogen werden kann, ist 'Abrufen einer Website-Homepage' oder 'Anmelden bei einer Webanwendung'. Das Echtzeitszenario möchte, dass es nur einmal auftritt und andere Anforderungen wie Suchen oder Bearbeiten / Löschen etwas mehrmals auftreten.
Anforderungen, die nur einmal ausgeführt werden sollen, können unter Once Only Controller gestellt werden. Siehe unten Screenshot als Referenz. Einmalige Controller-Einstellungen umgehen die Einstellungen der übergeordneten Thread-Gruppe.
Aufnahmesteuerung
Genau wie Simple Controller ändert Recording Controller keine Sequenz der Anforderungen, die an den Server gesendet werden. Es wird mit HTTP (S) Script Recorder verwendet. Alle Anforderungen, die mit diesem Nicht-Testelement aufgezeichnet werden, werden unter dem Aufzeichnungscontroller gespeichert.
Sie müssen den Zielcontroller angeben, um die aufgezeichneten Anforderungen an den Server zu speichern.
Der Aufzeichnungscontroller und der HTTP (s) -Skriptrekorder werden angezeigt, wenn die Tester nicht über die Informationen zu den URLs und Parametern der Anforderungen verfügen. Sie können einfach alle Anforderungen aufzeichnen und erfassen, die auf ihren Servern eingehen. Dies funktioniert sowohl für mobile als auch für Webprojekte.
Durchsatzregler
Dieser Controller wird auch zur Steuerung des Ausführungsflusses verwendet. Wie im folgenden Ausschnitt zu sehen ist, ist dieser Controller weiter in zwei Teile unterteilt:
Prozentuale Ausführung - - Durch diese Auswahl führt Jmeter nur einen bestimmten Prozentsatz der gesamten Iterationen für Sampler aus, die unter diesem Controller platziert sind. Sie können auch das Kontrollkästchen 'Pro Benutzer' aktivieren, um dies auf Benutzerebene zu steuern.
Zum Beispiel, Die Thread-Gruppe ist für 10 Benutzer konfiguriert und die Anzahl der Schleifen beträgt 5. Daher beträgt die Gesamtzahl der Iterationen 50. Wenn% Ausführung auf 50% festgelegt ist, führen alle Sampler unter dem Durchsatz-Controller nur 25 Iterationen durch (50% von 50).
Gesamtausführungen - Auf diese Weise können Benutzer die Anzahl der Iterationen direkt für die unter diesem Controller enthaltenen Sampler angeben.
Interleave Controller
Mit diesem Controller können Sie den Umfang Ihrer Leistungstests erweitern, indem Sie die Reihenfolge auf n verschiedene Arten ändern, sodass Sie die Auslastung des Servers testen können, wenn Anwendungen Anforderungen mit unterschiedlichen Sequenzen erfüllen. Interleave Controller trifft eine alternative Auswahl mit den Samplern darunter.
Falls andere Controller wie Simple Controller unter diesem Block gespeichert sind, kann der Interleave-Controller für jede Iteration jeweils einen Sampler aus einem Container auswählen. Betrachten Sie zur weiteren Erläuterung den folgenden Testplan.
Daher iteriert Jmeter bei jeder Iteration alternativ zwischen den Controllern. Daher wird die Reihenfolge unten erwähnt
Anfrage1 -> Anfrage3 -> Anfrage 5 - Anfrage2 -> Anfrage4 -> Anfrage6
Bitte beachten Sie die folgenden JMeter-Ergebnisse mit Anzahl der Threads = 2 und Loop Count = 2.
wie man eine Liste in Java deklariert
Im obigen Beispiel verschachtelt Jmeter mit der nächsten Schleife / Iteration. In Interleave Controller gibt es Einstellungen, mit denen JMeter mit jedem neuen Thread alternative Anforderungen senden kann.
Bitte sehen Sie die Ergebnisse unten. Dies ist nützlich in Szenarien, in denen Server mit sequenzieller oder gleichzeitiger Last mit der unterschiedlichen Reihenfolge der Anforderung von demselben Computer geladen werden sollen.
Zufälliger Controller
Es funktioniert fast wie ein Interleave-Controller, wählt jedoch die Sampler nicht in der richtigen Reihenfolge aus. Es werden nur die Sub-Controller und die darin enthaltenen Sampler zufällig ausgewählt.
Wenn Controller
Wenn Controller auf ähnliche Weise funktioniert, wird ein IF-Ausdruck in einer beliebigen Programmiersprache behandelt. Die Bedingung wird zuerst validiert und dann werden die Komponenten unter diesem Container ausgeführt, wenn die Bedingung TRUE ist. Andernfalls werden die Elemente außerhalb des IF-Controllers ausgeführt.
Beispiel :: In Fortsetzung eines der früheren Beispiele für Interleave Controller wurde nun einer der beiden Interleave Controller unter dem IF Controller und der Bedingung „$ (COUNT)“ geführt.<10 is added as a condition. Variable COUNT is defined in config element “User Defined Variables” and is given a value equal to 11. Configuration is described below
Definieren und Zuweisen eines Werts zur COUNT-Variablen.
Bedingung definieren in Wenn Controller die Einstellungen. Jmeter überprüft diese Bedingung und führt bei TRUE die Blöcke unter diesem Container aus.
Wie Sie dem folgenden Testplan entnehmen können, werden nur Request3, Request4 und Request5 ausgeführt, falls IF Condition als bewertet wird Falsch .
Während Controller
Dieser Controller führt die darunter liegenden Komponenten aus, bis die Bedingung falsch wird.
Zum Beispiel, Angenommen, wir haben eine Bedingung, während ($ (count)<10), it will execute the child elements until the condition is false. To test this, there should be a counter which gets increment or decrement on each iteration and then condition is evaluated. Config Element “Counter” can be used to serve this purpose.
Konfigurieren Sie das Konfigurationselement 'Counter' so, dass es bei 1 beginnt und dann bei jeder Iteration erhöht wird. Weitere Erläuterungen finden Sie weiter unten:
Wir werden den Rest der Controller in unseren Video-Tutorials ansprechen.
Echtzeitbeispiel
Stellen wir uns ein Szenario vor, in dem das Testteam die URLs und Parameter aller Anforderungen, die den zu testenden Server treffen, nicht kennt. Um den Server zu testen, müssen sie nun die Anforderungen aufzeichnen und dann die Last nacheinander oder gleichzeitig modulieren und daraus Szenarien erstellen, um die Leistungstests durchzuführen.
Schritte
wie man Popup-Fenster in Selenium Webdriver behandelt
- Fügen Sie eine Vorlage in Jmeter for Recording Controller hinzu
- Stellen Sie den Proxy in Ihrem Browser ein und wählen Sie denselben Port in HTTP (s) Script Recorder
- Notieren Sie die Anfragen
- Ändern Sie den Testplan und erhöhen Sie die Last
- Gruppieren Sie die Transaktionen entsprechend
- Probieren Sie verschiedene Kombinationen von Anfragen aus
JMeters Aufnahmevorlage
JMeter hat auch eine vordefinierte Vorlage. Wählen Sie im Menü 'Datei' die Option 'Vorlage'. Nachdem Sie die Vorlage ausgewählt haben, wählen Sie im sich öffnenden Fenster die Option „Aufnahme“ und klicken Sie auf Erstellen.
Sobald Sie diese Aufnahmevorlage auswählen, werden einige Komponenten bereits im Testplan hinzugefügt.
- HTTP (s) Script Recorder unter Work Bench
- Standardeinstellungen für HTTP-Anforderungen und HTTP-Cookie-Manager
- Aufzeichnungscontroller unter Thread-Gruppe.
Sie können entweder Proxy-Einstellungen in Ihrem Browser vornehmen, um mit dem JMeter-Proxyserver zu kommunizieren, oder CHROME Extension Blazemeter verwenden, um die Anforderungen aufzuzeichnen und dann zu exportieren. JMX-Datei an Jmeter. Es gibt viele andere Erweiterungen, mit denen Sie das Skript aufzeichnen und dann nach JMeter exportieren können. Das BADBOY-Tool funktioniert auch gut mit Jmeter, um sowohl Web- als auch Mobile-Hits aufzuzeichnen.
Klicke auf. jmx-Option zum Exportieren der aufgezeichneten Anforderung in Jmeter. Öffnen Sie nun von Jmeter aus die. jmx-Datei und sehen Sie die Anforderungen und die Parameter, die jeder Anforderung zugeordnet sind.
Fazit
Inzwischen wird davon ausgegangen, dass Sie sich alle mit der Grundlogik von JMeter vertraut gemacht haben müssen, wie sie das Laden simuliert, wie man mit verschiedenen Samplertypen spielt, wie man den Ausführungsfluss mithilfe von Controller und unter Verwendung von Variablen und steuert Funktionen zum Ausführen der Schleifen über die Iterationen. Dies ist sicherlich nicht das Ende der Reihe von Tutorials zu JMeter.
Es gibt viele Video-Tutorials zu folgen, welche Tester mit mehr Händen zu verschiedenen Szenarien in Jmeter führen und wie jede JMeter-Komponente am besten genutzt werden kann.
=> Die vollständige Liste der JMeter-Video-Tutorials finden Sie hier
Bitte teilen Sie uns Ihre Kommentare oder Fragen mit.
Literatur-Empfehlungen
- Jmeter-Steuerungen Teil 1
- Jmeter-Steuerungen Teil 2
- So erreichen Sie eine JMeter-Korrelation mit einem Beispiel
- Arbeiten mit HTTP-Anforderungen in JMeter
- Arbeiten mit FTP-Anforderungen in JMeter
- Verwenden des Postprozessors in JMeter (Regular Expression Extractor)
- Top 5 JMeter-Plugins und deren Verwendung (mit Beispielen)
- JMeter-Timer: Konstanter, BeanShell- und Guassian-Zufalls-Timer