detail description jmeter components
Überprüfung der Jmeter-Komponenten (Teil II):
=> Dies ist Teil der JMeter-Schulungsreihe. Die Liste aller Tutorials in dieser Reihe finden Sie hier .
Hoffe ihr alle müsst das durchgemacht haben JMeter Einführung und Installation inzwischen. Da wir mit dem nächsten Teil der Serie fortfahren, wird dringend empfohlen, dass Sie alle JMeter installieren und nebeneinander üben.
In diesem Tutorial würden sich die Leser mit ihnen vertraut machen alle Komponenten von JMeter und deren Verwendung im Testplan um alle möglichen Leistungstestszenarien zum Testen des AUT (Application Under Test) abzudecken.
Elemente von Jmeter waren im vorherigen Artikel aufgeführt.
Was du lernen wirst:
- Komponenten von JMeter
Komponenten von JMeter
Schreiben Sie noch einmal als Referenz:
- Versuchsplan
- ThreadGroup
- Sampler
- Zuhörer
- Werkbank
- Behauptungen
- Konfigurationselement
- Logik-Controller
- Timer
Alle Hauptkomponenten von Jmeter wie Thread Group, Sampler, Listener und Konfigurationselemente werden später in diesem Artikel ausführlich erläutert.
Bitte beziehen Sie sich auf das folgende Flussdiagramm, um die einzelnen Komponenten und ihre Beziehung zu bestimmten Modulen von JMeter zu verstehen.
Jetzt würden wir anfangen, jede Komponente von Jmeter zusammen mit Anwendungsfällen zu berühren, um zu wissen, wie es funktioniert und wie Tester diese in ihre Tests implementieren können. Bitte beachten Sie, dass wir in diesem Artikel nicht alle Sampler und Hörer behandeln. Wir werden an den am häufigsten verwendeten arbeiten und uns im nächsten Artikel ausruhen, wenn wir Echtzeit-Testpläne erstellen.
Versuchsplan
So wie ein einfacher Testplan in Software Testing aus allen Schritten besteht, die das Skript ausführen, hat der Testplan von JMeter denselben Zweck. Alles, was in einem Testplan enthalten ist, wird in einer Reihenfolge ausgeführt, die von oben nach unten oder gemäß der im Testplan definierten Reihenfolge erfolgt.
Der Testplan kann mit Just ThreadGroup, Sampler und Listener so einfach wie möglich sein und wird komplexer, sobald Sie weitere Elemente wie Konfigurationselemente, Präprozessoren oder Controller hinzufügen.
Wie wir alle wissen, misst JMeter die Leistung durch Generieren von virtuellen Benutzern oder Threads, die den zu testenden Server treffen, als ob echte Benutzer Anforderungen an einen Server senden. Daher sollte jeder Testplan virtuelle Benutzer oder Thread-Gruppen haben, wie wir sie in JMeters Begriffen nennen.
Wichtige Punkte zum Testplan:
- Der Testplan sollte vor dem Ausführen gespeichert werden
- Jmeter-Dateien oder Testpläne werden in Form von gespeichert. JMX-Erweiterungsdateien
- Sie können auch Teile des Testplans als unterschiedliche Auswahl speichern. Zum Beispiel, Wenn Sie den HTTP-Anforderungs-Sampler mit Listener speichern möchten, können Sie ihn als Testfragment speichern, damit er auch in anderen Testszenarien verwendet werden kann
- Elemente von WorkBench werden nicht mit Testplan gespeichert
Thread-Gruppe
Thread-Gruppe ist eine Gruppe von Benutzern, die entweder gleichzeitig oder in einer vordefinierten Reihenfolge auf den zu testenden Server zugreifen. Die Thread-Gruppe kann zum Testplan hinzugefügt werden, indem Sie mit der rechten Maustaste auf den Testplan klicken. JMeter ist alles 'Rechtsklick-Zeug', Sie erhalten alle Optionen auf den Rechtsklick.
Sie können den Namen der Thread-Gruppe in Ihren eigenen Namen umbenennen. Ändern Sie einfach den Namen und klicken Sie auf eine beliebige Stelle außerhalb des Testplanfensters. Der Name wird dann geändert.
youtube to mp4 converter online kostenlos kein Download
Im folgenden Screenshot finden Sie Informationen zum Hinzufügen von Thread-Gruppen
(Hinweis: Klicken Sie auf ein Bild, um es zu vergrößern.)
Es ist sehr wichtig, Ihre Thread-Gruppe gemäß den Testbedingungen zu konfigurieren.
Zum Beispiel, Wenn Sie testen möchten, wie sich ein Webserver verhält, wenn 100 Benutzer gleichzeitig darauf zugreifen, können Sie die Thread-Gruppe wie folgt festlegen:
Grundsätzlich gibt es drei Hauptparameter, die konfiguriert werden müssen, um tatsächliche Last oder virtuelle Benutzer zu generieren:
- Anzahl der Threads (Benutzer) - Es definiert die Anzahl der virtuellen Benutzer. Zu Testzwecken sollten wir nur eine begrenzte Menge an Last generieren, da das gleichzeitige Generieren eines großen Volumens bedeuten würde, dass viele Threads verbraucht werden, was letztendlich zu einer hohen CPU-Auslastung führen kann.
- Hochlaufzeit - Dieses Feld ist sehr wichtig für die Steuerung der Lasterzeugung. Die Hochlaufzeit definiert die Zeitspanne, in der die Gesamtlast erzeugt wird.
Beispiel 1::
- Dies bedeutet, dass alle 10 Benutzer gleichzeitig auf Server zugreifen, sobald ein Test ausgeführt wird
Beispiel 2::
- Sie alle müssen das Kontrollkästchen 'Scheduler' im obigen Screenshot bemerkt haben. Wenn Sie möchten, dass Ihr Test zu einem bestimmten Zeitpunkt später ausgeführt wird, können Sie die Timings festlegen, wie Sie auch im folgenden Screenshot sehen können. Dies bedeutet, dass alle 1 Sekunde ein neuer Benutzer den Server trifft. Die Last erfolgt nicht gleichzeitig, sondern in Schritten. Bis zum 10thZweitens hätte jeder Benutzer die Anfrage getroffen.
- Anzahl der Schleifen - Definiert, wie oft die Thread-Gruppe ausgeführt wird. Wenn Sie das Kontrollkästchen Für immer aktivieren, wird Ihr Test für immer ausgeführt, sofern Sie ihn nicht manuell stoppen. Dies kann verwendet werden, um etwas zu testen wie 'Wenn Ihr Server einige Minuten lang nicht unter Dauerlast abstürzt'.
Sampler
Woher weiß ein Jmeter, welche Art von Anfrage an den Server gesendet wurde?
- Es ist durch Sampler. Sampler sind ein Muss, um einen Testplan zu ergänzen, da nur Jmeter wissen kann, welche Art von Anforderung an welchen Server gesendet werden muss und mit vordefinierten Parametern oder nicht. Anfragen können HTTP, HTTP (s), FTP, TCP, SMTP, SOAP usw. sein.
Sampler können nur zur Thread-Gruppe hinzugefügt werden, nicht direkt unter Testplan, da Thread-Gruppen einen Sampler verwenden müssen, um eine Anfrage an die zu testende Server-URL zu senden. Der Sampler kann über einen Pfad hinzugefügt werden Thread-Gruppe -> Sampler -> HTTP-Anfrage.
HTTP-Anfragen
Dies sind die häufigsten Anforderungen, die an die Server gesendet werden. Sagen, zum Beispiel, Wir möchten, dass 100 Benutzer treffen https://www.google.com Gleichzeitig kann dies wie im folgenden Screenshot beschrieben erfolgen:
Äquivalenzpartitionierung und Randwertanalyse
- Der Pfad ist die Navigation innerhalb der Hauptwebsite. Wenn wir beispielsweise auf http://www.google.com/gmail klicken möchten, können wir '/ Gmail' als Pfad festlegen und der Rest bleibt gleich
- Geben Sie nicht 'www' in den Servernamen ein
- Die Portnummer wird verwendet, wenn Sie einen Proxyserver verwenden
- Timeout Connect und Response können festgelegt werden, wenn Sie einen Benchmark für die Serververbindungszeit und die Antwortzeit festlegen möchten. Ihre Anfrage schlägt fehl, wenn Ihr Server mehr Zeit zum Senden der Antwort benötigt als die konfigurierte
- Sie können auch Parameter konfigurieren, die mit Ihrer Anfrage gesendet werden sollen. Zum Beispiel: In einigen Fällen müssen Sie möglicherweise ein Autorisierungstoken mit Ihrer Anfrage senden, sodass Sie diese wie folgt in die HTTP-Anfrage einfügen:
FTP-Anfragen
Pfad-> Testplan-> Thread-Gruppe-> Sampler-> FTP-Anfrage
FTP steht für File Transfer Protocol und wird zum Hochladen oder Herunterladen einer Datei vom Server verwendet. Die Threads von JMeter senden Anforderungen an FTP-Server, um Dateien von dort hoch- oder herunterzuladen, und messen die Leistung.
- Lokale Datei ist der Speicherort, an dem Sie die heruntergeladene Datei speichern müssen
- Verwenden Sie die Option GET, wenn Sie vom FTP-Server herunterladen
- Benutzer-POST-Option, wenn Sie eine Datei auf einen FTP-Server hochladen
Wir haben sehr viele Listener, die behandelt werden, wenn wir einige echte Testpläne durchlaufen, die aus Samplern, Listenern, Konfigurationselementen usw. bestehen.
Zuhörer
Bisher haben wir nur wenige Sampler gesehen, die Anfragen an den Server gesendet haben, aber die Antwort noch nicht analysiert. Beim Leistungstest geht es darum, Serverantworten in verschiedenen Formen zu analysieren und sie dann dem Client zu präsentieren.
Listener werden verwendet, um die Ergebnisse der Testausführung anzuzeigen, damit Tester die Statistiken kennenlernen. Wir haben ungefähr 15 Hörer in Jmeter, aber die am häufigsten verwendeten sind Tabelle, Baum und Grafik.
Ergebnisse in Tabelle anzeigen:
Dies ist die am häufigsten verwendete und leicht verständliche Form von Zuhörern. Das Ergebnis wird in Form einer Tabelle mit einigen wichtigen Leistungsparametern angezeigt.
Listener können direkt unter Testplan oder unter einem Sampler hinzugefügt werden. Der Unterschied besteht darin, dass beim Hinzufügen eines Listeners unter einem Sampler nur die Ergebnisse dieses Samplers angezeigt werden. Wenn wir den Sampler direkt unter dem Testplan hinzufügen, wird das Ergebnis für alle Sampler in der Hierarchie angezeigt.
Der Screenshot unten dient als Referenz:
Sie sehen die Ergebnisse wie folgt:
- Latenz : Es ist die Zeit, zu der die erste Information empfangen wird, d. H. Das erste Datenbyte
- Verbindungszeit : Es ist die Zeit, die benötigt wird, um eine Verbindung mit dem Server herzustellen
- Beispielzeit : Es ist die Zeit, die benötigt wird, um vollständige Daten zu erhalten
- Stichprobe - Reihenfolge der Probennummer
- Bytes - Größe der empfangenen Daten.
Ergebnisse im Baum anzeigen:
Dies ist ein weiterer am häufigsten verwendeter Listener und bietet detaillierte Informationen mit Anfrage und Antwort. Neben der Anzeige von Json, XML, Text und RegEx kann auch die als Antwort gerenderte HTML-Seite angezeigt werden.
Dies ist sehr nützlich, da Tester Aussagen über die empfangene Antwort machen können, um sicherzustellen, dass der Test bestanden wurde. Jmeter-Ergebnisse zeigen immer noch 'Pass', auch wenn die Antwort nicht erwünscht ist.
Zum Beispiel: Angenommen, wir treffen auf jeder Website auf eine HTTP-Anfrage www.xyz.com Als Antwort erwarten wir XYZ oder in einfachen Worten, wenn wir auf die Homepage dieser Seite klicken, wird die Firmenseite mit ihrem Namen geöffnet. Wenn wir keine Zusicherung machen, zeigt Jmeter weiterhin Ergebnisse an, seit der Treffer auf dem Server eingegangen ist.
Das Format der Ergebnisse finden Sie weiter unten:
Um die HTML-Seite als Antwort anzuzeigen, klicken Sie auf das Dropdown-Menü im linken Bereich und wählen Sie 'HTML' aus. Navigieren Sie zur Registerkarte 'Antwort' und überprüfen Sie die Seite, die als Antwort des Servers zurückgegeben wird.
Werkbank
In einer Workbench können Sie die Elemente speichern, die in Ihrem aktuellen Testplan nicht verwendet werden, die aber später kopiert und eingefügt werden können. Wenn Sie eine JMeter-Datei speichern, werden die in der Workbench vorhandenen Komponenten nicht automatisch gespeichert. Sie müssen sie separat speichern, indem Sie mit der rechten Maustaste klicken und die Option „Speichern unter“ auswählen.
Sie alle denken vielleicht, was die Verwendung der Workbench ist. Auf jeden Fall ist es einfach, eine Komponente direkt zum Testplan eines Jmeters hinzuzufügen.
Der Grund für die Workbench war, dass der Benutzer einige Experimente durchführen und neue Szenarien ausprobieren konnte. Wie wir bereits wissen, werden Elemente in der Workbench nicht gespeichert, sodass ein Benutzer buchstäblich alles verwenden und dann wegwerfen kann. Es gibt jedoch einige „Nicht-Test-Komponenten“, die nur in WorkBench verfügbar sind.
Sie sind hier aufgelistet:
- HTTP Mirror Server
- HTTP (s) Test Script Recorder
- Eigenschaftsanzeige
HTTP (s) Test Script Recorder ist das wichtigste Nicht-Test-Element, das in JMeter verwendet wird. Es hilft Testern beim Aufzeichnen des Skripts und beim anschließenden Konfigurieren der Last für jede Transaktion.
Jmeter zeichnet nur die an den Server gesendete Anforderung auf. Verwechseln Sie nicht die 'Record and Play' -Funktionalität von QTP / Selenium. Alle Anforderungen werden aufgezeichnet und Tester können die gewünschte Last auf sie anwenden, um das Verhalten zu sehen.
Dieses Element ist sehr wichtig für Szenarien, in denen Tester nicht wissen, welche Anforderungen von ihrer Anwendung ausgehen. Sie können Http (s) -Skriptrekorder verwenden, um die zu testende Anwendung aufzuzeichnen.
Auf diese Weise können auch Leistungstests für mobile Anwendungen durchgeführt werden, indem ein JMeter-Proxy eingerichtet und anschließend die Anforderungen aufgezeichnet werden, die unsere mobile App an den Server sendet. Das schrittweise Verfahren zum Testen der mobilen Leistung wird im nächsten Artikel erläutert.
Behauptungen
Bis jetzt haben wir behandelt, wie JMeter auf den Server gelangt und wie die Antworten über Listener angezeigt werden. Um sicherzustellen, dass die empfangene Antwort korrekt ist und den Erwartungen entspricht, müssen wir Zusicherungen hinzufügen. Behauptungen sind einfach Validierungen, die wir auf Antworten setzen müssen, um die Ergebnisse zu vergleichen.
Nachfolgend sind die häufig verwendeten Arten von Behauptungen aufgeführt:
- Antwort Behauptung
- Dauer Behauptung
- Größenbehauptung
- XML-Zusicherung
- HTML-Bestätigung
Antwort Behauptung
In Response Assertion können wir unsere eigenen Musterzeichenfolgen hinzufügen und diese dann mit den von einem Server empfangenen Antworten vergleichen. Zum Beispiel, Sie alle wissen, dass der Antwortcode 200 ist, wenn eine Anforderung eine Antwort erfolgreich zurückgibt. Wenn wir also die Musterzeichenfolge 'Response Code = 202' hinzufügen, sollte der Testfall fehlschlagen.
Bitte beziehen Sie sich auf die folgenden Screenshots, um die Bestätigung des Antwortcodes hinzuzufügen.
Wenn der Test ausgeführt wird, wird das Ergebnis mit roter Farbe angezeigt, um anzuzeigen, dass die Assertionsergebnisse fehlgeschlagen sind.
Dauer Behauptung
Die Bestätigung der Dauer ist sehr wichtig und bestätigt, dass der Server innerhalb eines bestimmten Zeitraums geantwortet hat. Dies kann in Szenarien verwendet werden, in denen wir 100 Anfragen abtasten und sicherstellen müssen, dass jede Antwort innerhalb des Benchmark-Grenzwerts eingeht.
Fall : 10 Benutzer treffen gleichzeitig auf den 'google.com' -Server und die Dauer-Zusicherung ist auf 1000 ms eingestellt. Bitte sehen Sie die folgenden Screenshots:
XML Assertion überprüft, ob die Antwortdaten das richtige XML-Dokument enthalten, und HTML Assertion überprüft die HTML-Syntax der von einem Server empfangenen Antwort.
Unterschiede zwischen C ++ und Java
Konfigurationselemente
An den Server gesendete Anforderungen können mithilfe einiger Konfigurationselemente, die vor der eigentlichen Anforderung ausgeführt werden, weiter parametrisiert werden. Ein einfaches Beispiel hierfür ist das Lesen von Werten einer Variablen aus einer CSV-Datei, für die die CSV-Datensatzkonfiguration verwendet wird.
Im Folgenden finden Sie einige wichtige Konfigurationselemente, die beim Leistungstest von Web- und Mobilanwendungen verwendet werden
- CSV-Datensatzkonfiguration
- Benutzerdefinierte Variablen
- HTTPS-Anforderungen Standard
- HTTPS-Cache-Manager
- HTTPS-Cookie-Manager
CSV-Datensatzkonfiguration
Die Konfiguration des CSV-Datensatzes hilft Jmeter dabei, Werte einiger Parameter aus einer CSV-Datei auszuwählen, anstatt in jeder einzelnen Anforderung unterschiedliche Parameter zu übergeben. Zum Beispiel, Wenn wir die Anmeldefunktionalität mit einer anderen Gruppe von Benutzern und Kennwörtern testen müssen, können wir zwei Spalten in einer CSV-Datei erstellen und dort die Werte eingeben, damit JMeter für jede an den Server gesendete Anforderung eine auswählen kann.
Nachfolgend sehen Sie den Ablauf der Verwendung des CSV-Datensatzes der Konfiguration zum Testen der Wetter-API für verschiedene Städte in Indien.
- Hinzufügen eines Konfigurationselements für CSV-Datensätze zum Testplan
- CSV-Datei erstellen
- Übergabe einer Variablen im Anforderungsparameter. Der APPID-Parameter kann dynamisch aus generiert werden http://openweathermap.org/appid
- Ausführen des Tests und Anzeigen der Ergebnisse.
Benutzerdefinierte Variablen
Es hilft Jmeter, Werte aus einer vordefinierten Variablen auszuwählen. Zum Beispiel, Unterstützung, dass Sie einen Testplan erstellen müssen, in dem Sie viele HTTP-Anforderungen unter derselben URL hinzufügen müssen, und es könnte ein Szenario geben, in dem der Client plant, ihn später auf eine andere URL zu migrieren. So vermeiden Sie, dass die URL in jeder Anforderung aktualisiert wird Wir können JMeter anweisen, die URL aus einer UDV (User Defined Variable) auszuwählen, die später aktualisiert werden kann, um alle Anforderungen an die aktualisierte URL zu verarbeiten.
Um zu vermeiden, dass die URL in jeder Anforderung aktualisiert wird, können wir JMeter anweisen, die URL aus einer UDV (User Defined Variable) auszuwählen, die später aktualisiert werden kann, um alle Anforderungen an die aktualisierte URL zu verarbeiten.
Standardeinstellungen für HTTP-Anforderungen
Dieses Konfigurationselement ist sehr nützlich, um die Standardwerte von https-Anforderungen anzugeben. Nehmen Sie ein Beispiel, in dem wir 50 verschiedene Anforderungen bei Google Server erfüllen müssen. Wenn wir in diesem Szenario einen HTTP-Anforderungsstandard hinzufügen, müssen wir keinen Servernamen, Pfad oder andere Eigenschaften wie Portnummer, Verbindung angeben Timeout-Eigenschaften. Was auch immer im Standardkonfigurationselement für HTTP-Anforderungen angegeben ist, wird von allen HTTP-Anforderungen geerbt.
Wenn wir in diesem Szenario einen HTTP-Anforderungsstandard hinzufügen, müssen wir keinen Servernamen, Pfad oder andere Eigenschaften wie Portnummer oder Eigenschaften des Verbindungszeitlimits angeben. Was auch immer im Standardkonfigurationselement für HTTP-Anforderungen angegeben ist, wird von allen HTTP-Anforderungen geerbt.
Im Folgenden erfahren Sie, wie Sie HTTP Request Default hinzufügen und Server und Pfad angeben.
HTTP-Cache-Manager und HTTP-Cookie-Manager werden verwendet, um JMeter als Echtzeitbrowser zu verhalten. Der HTTP-Cache-Manager kann den Cache nach jeder Anforderung löschen, während der andere die Cookie-Einstellungen verwalten kann.
Logik-Controller und Timer
Logik-Controller und Timer helfen Jmeter, den Transaktionsfluss zu steuern. Timer stellen die Verzögerung in jedem Thread sicher, wenn ein Server getestet werden muss. Zum Beispiel, Wenn die FTP-Anforderung nach Abschluss der HTTP-Anforderung 5 Sekunden warten muss, können wir dort einen Timer hinzufügen.
Logikcontroller werden verwendet, um den Fluss von Anforderungen zu definieren, die an den Server gesendet werden. Sie können damit auch Anforderungen für jedes Modul separat speichern, z. B. An- und Abmelden.
Fazit
Inzwischen müssen Sie sich alle mit den Komponenten von JMeter vertraut gemacht und versucht haben, sie zu verwenden, und müssen mit einigen Problemen konfrontiert sein. Im nächsten Artikel werden einige Echtzeit-Leistungstestszenarien für den Mobilitätsbereich behandelt, damit Sie alle mehr praktische Kenntnisse über JMeter erhalten.
Bleiben Sie dran! Der nächste Artikel hilft Ihnen bei der Verwaltung Ihrer Anforderungen sowie bei der Analyse der Ergebnisse und beim Vergleich mit den Benchmarks für Leistungstests.
=>Lesen Sie weiter Teil III:: JMeter Prozessoren und Controller
=> Klicken Sie hier für JMeter Tutorials: Das komplette kostenlose Training auf JMeter (20+ Videos)
Literatur-Empfehlungen
- So erreichen Sie eine JMeter-Korrelation mit einem Beispiel
- Jmeter Testplan und WorkBench
- Arbeiten mit FTP-Anfrage in JMeter
- Top 5 JMeter-Plugins und deren Verwendung (mit Beispielen)
- JMeter-Timer: Konstanter, BeanShell- und Guassian-Zufalls-Timer
- Arbeiten mit HTTP-Anforderungen in JMeter
- Jmeter-Steuerungen Teil 1
- Jmeter-Steuerungen Teil 2