JMeter Elemente & Komponenten: Thread-Gruppe, Sampler

⚡ Intelligente Zusammenfassung

JMeter Elemente sind die Bausteine ​​jedes Testplans: Thread-Gruppen erstellen virtuelle Benutzer, Sampler senden die Anfragen, Listener zeigen Ergebnisse an und Konfigurationselemente liefern die Standardwerte und Daten, die diese Anfragen benötigen.

  • 🔘 Themengruppe: Jeder Thread repräsentiert einen virtuellen Benutzer, der die zu testende Anwendung steuert.
  • ☑️ Sampler: Wählen Sie das Protokoll der Anfrage – FTP, HTTP, JDBC, SMTP und mehr.
  • Zuhörer: Die Ergebnisse werden als Graph, Baum, Tabelle oder Protokolldatei dargestellt.
  • 🧪 Konfigurationselemente: Standardwerte und Variablen festlegen, die von den Samplern während eines gesamten Tests wiederverwendet werden.
  • Datengesteuerte Läufe: Die CSV-Datensatzkonfiguration weist jedem simulierten Benutzer unterschiedliche Anmeldeinformationen zu.
  • Moderne Entsprechungen: Der BSF-Sampler wurde eingestellt; aktuelle Releases werden über JSR223 und JSR223 veröffentlicht. Groovy.

JMeter Elemente: Thread-Gruppe, Sampler, Listener und Konfigurationselemente

Was ist Element in JMeter?

Die verschiedenen Komponenten von JMeter werden Elemente genannt. Jedes Element ist für einen bestimmten Zweck konzipiert.

Die folgende Abbildung zeigt einige gemeinsame Elemente in JMeter und zeigt, wie sie unter einer Thread-Gruppe angeordnet sind.

JMeter Elementhierarchiediagramm mit Thread-Gruppe über Samplern, Logiksteuerungen, Listenern, Konfigurationselementen, Assertions, Timern und Prozessoren

Alle Komponenten auf einmal zu studieren, führt nur zu Verwirrung und Langeweile. Hier besprechen wir die wichtigsten Grundlagen, bevor Sie beginnen können. testing in JMeter.

Die übrigen Komponenten werden in den folgenden Tutorials behandelt, sobald sie verwendet werden. Die in diesem Tutorial besprochenen Elemente sind unten aufgeführt.

Thread-Gruppe

Eine Thread-Gruppe ist eine Sammlung von Threads. Jeder Thread repräsentiert einen Benutzer, der die zu testende Anwendung verwendet. Im Prinzip simuliert jeder Thread eine Anfrage eines realen Benutzers an den Server.

Die Steuerelemente für eine Threadgruppe ermöglichen es Ihnen, die Anzahl der Threads für jede Gruppe festzulegen.

Wenn Sie beispielsweise die Anzahl der Threads auf 100 festlegen, JMeter wird 100 Benutzeranfragen an den zu testenden Server erstellen und simulieren, wie das untenstehende Diagramm veranschaulicht.

Diagramm eines JMeter Eine Thread-Gruppe simuliert die Benutzer 1 bis 100, wobei jeder Benutzer eine Anfrage an die zu testende Anwendung sendet.

Das Thread-Gruppen-Panel verfügt außerdem über eine Anlaufphase, wodurch der Start dieser Threads zeitlich verteilt wird, anstatt alle Benutzer gleichzeitig zu starten.

Sampler

Wie wir bereits wissen, JMeter unterstützt das Testen von HTTP, FTP, JDBC und vielen anderen Protokollen.

Wir wissen auch, dass Thread-Gruppen Benutzeranfragen an den Server simulieren.

Aber woher weiß eine Thread-Gruppe, welche Art von Anfrage (HTTP, FTP usw.) sie stellen muss?

Die Antwort lautet Sampler.

Die Benutzeranfrage kann beispielsweise eine FTP-, HTTP- oder JDBC-Anfrage sein. Die folgende Abbildung zeigt die in diesem Tutorial behandelten Beispiele.

Baumdiagramm-Liste JMeter Sampler: FTP-Anfrage, HTTP-Anfrage, JDBC-Anfrage, BSF-Sampler, Zugriffsprotokoll-Sampler und SMTP-Sampler

FTP-Anfrage

Stellen wir uns vor, Sie möchten die Leistung eines FTP-Servers testen. Sie können dazu einen FTP-Request-Sampler verwenden. JMeter um diese Aufgabe zu erledigen. Mit diesem Controller können Sie eine FTP-Anfrage „Datei herunterladen“ oder „Datei hochladen“ an einen FTP-Server senden.

Diagramm zeigt JMeter Senden einer FTP-Anfrage an einen FTP-Server zum Hoch- oder Herunterladen einer Datei

Wenn Sie beispielsweise eine Datei „Test.txt“ von einem zu testenden FTP-Server herunterladen möchten, müssen Sie einige Parameter konfigurieren JMeter wie in der folgenden Abbildung dargestellt.

FTP-Anfrage-Beispielpanel mit ftp.example.com als Server, Port 21, Test.txt als Remote-Datei und anonymer Anmeldung

Das Bedienfeld stellt den Server so ein, dass er ftp.example.comPort 21, die Remote-Datei Test.txt und die Option get(RETR), also JMeter sendet einen FTP-Befehl an diesen Server und lädt die Datei herunter.

HTTP-Anfrage

Mit diesem Sampler können Sie eine HTTP/HTTPS-Anfrage an einen Webserver senden.

Betrachten Sie das folgende Beispiel. JMeter sendet eine HTTP-Anfrage an die Google Website und ruft HTML-Dateien oder Bilder von dieser ab.

Diagramm von JMeter eine HTTP-Anfrage senden an Google Websites und im Gegenzug HTML und Bilder erhalten

Im Tutorial JMeter Performance TestingWir werden diese HTTP-Anfrage genauer erläutern. Sie ist das am häufigsten verwendete Beispiel. Testen von Webanwendungen Arbeit basiert auf.

JDBC-Anfrage

Dieser Sampler ermöglicht die Ausführung von Datenbankabfragen. Leistungstest. Es sendet eine JDBC-Anfrage (eine SQL-Abfrage) an eine Datenbank.

Diagramm von JMeter eine SQL-Abfrage an einen Datenbankserver senden und das Ergebnis empfangen

Ein Datenbankserver speichert beispielsweise ein Feld namens test_tbl in einer Tabelle namens test_tbl. Sie möchten diese Daten vom Datenbankserver abfragen, daher können Sie Folgendes konfigurieren: JMeter senden a SQL Anfrage an diesen Server, um die Daten abzurufen.

JDBC-Anforderungspanel mit dem Abfragetyp „Select-Anweisung“ und der Abfrage „SELECT test_result FROM test_tbl WHERE id = 1“

Der Abfragetyp ist hier SELECT-Anweisung und die Abfrage lautet: select test_result from test_tbl where id = 1Ein JDBC-Verbindungskonfigurationselement muss den Pool angeben, auf den das Feld „Variablenname“ verweist.

BSF-Sampler

Mit diesem Sampler können Sie einen Sampler mit a schreiben BSF Skriptsprache.

Hier ist ein Beispiel für einen BSF-Sampler in JMeter, mit Feldern für die Skriptsprache, die an das Skript übergebenen Parameter und entweder ein Inline-Skript oder eine externe Skriptdatei.

BSF-Sampler-Panel mit Feldern für Skriptsprache, Parameter, eine externe Skriptdatei und den Inline-Skriptkörper

Hinweis zur Veraltung: Die BSF-Elementfamilie wurde zugunsten der JSR223-Elemente als veraltet eingestuft und ist nicht mehr in der JMeter KomponentenreferenzBei den aktuellen Versionen verwenden Sie die JSR223 Sampler und GroovyDadurch wird das Skript kompiliert und die Leistung unter Last deutlich verbessert. Das obige Panel bleibt erhalten, da es in älteren Testplänen noch enthalten ist.

Zugriff auf Log Sampler

Dieses Beispielprogramm ermöglicht das Lesen von Zugriffsprotokollen und das Generieren von HTTP-Anfragen. Die Protokolleinträge können Bilder, HTML-Code, CSS-Code usw. enthalten.

Das Bedienfeld „Zugriffsprotokoll-Sampler“ zeigt die Standardfelder für Server und Port, die TCLogParser-Plugin-Klasse und den Speicherort der Protokolldatei an.

Das Parser-Feld ist standardmäßig auf org.apache.jmeter.protocol.http.util.accesslog.TCLogParserund das Feld „Speicherort der Protokolldatei“ verweist JMeter bei dem Logeintrag, den Sie erneut abspielen möchten.

SMTP-Sampler

Wenn Sie einen Mailserver testen möchten, können Sie den SMTP-Sampler verwenden. Dieser Sampler dient zum Versenden von E-Mail-Nachrichten über das SMTP-Protokoll.

SMTP-Beispielpanel mit Servereinstellungen, E-Mail-Adressen, Authentifizierungs- und Sicherheitsoptionen sowie Nachrichteneinstellungen

Das Panel gruppiert Servereinstellungen, E-Mail-Adressen, Authentifizierungs- und Nachrichteneinstellungen und gibt die Standardports neben dem Feld „Port“ aus: SMTP 25, SSL 465 und StartTLS 587.

Zuhörer

Die Listener zeigen die Ergebnisse der Testausführung an. Sie können die Ergebnisse in verschiedenen Formaten darstellen, z. B. als Baumdiagramm, Tabelle, Graph oder Protokolldatei.

Diagramm, das einen Listener zeigt, der Ergebnisse in Diagramm-, Baum-, Tabellen- und Berichtsansichten aufteilt.

Das Diagrammergebnisse Der Listener zeigt die Serverantwortzeiten in einem Diagramm an, wobei darunter die Anzahl der Messwerte, der Durchschnitt, die Abweichung, der Durchsatz und der Median ausgegeben werden.

Ergebnisse der grafischen Darstellung: Zuhörer visualisiert Antwortzeiten mit Daten, Mittelwert, Median, Abweichung und Durchsatzreihen.

Ergebnisbaum anzeigen zeigt das Ergebnis jeder Benutzeranfrage im einfachen HTML-Format an, wobei eine Registerkarte „Sampler-Ergebnisse“ Ladezeit, Latenz, Größe und Antwortcode anzeigt.

Ergebnisse anzeigen: Baumstruktur-Listener mit einer Anforderungsliste auf der linken Seite und der Registerkarte „Sampler-Ergebnisse“, die den Antwortcode 200 anzeigt.

Ergebnisse in der Tabelle anzeigen zeigt eine Zusammenfassung des Testergebnisses in Tabellenform, eine Zeile pro Probe.

Ergebnisse in der Tabelle anzeigen (Listener mit Spalten für Abtastnummer, Startzeit, Thread-Name, Label und Abtastzeit)

Eine Protokolldatei speichert die gleiche Zusammenfassung wie ein Text, der bei einem Testlauf ohne grafische Benutzeroberfläche gespeichert wird.

Zusammenfassende Protokollübersicht mit Angabe der Probenbezeichnungen, Probenanzahlen, Mittelwerten und einer Gesamtzeile

Best Practice: GUI-Listener verbrauchen viel Speicher und verfälschen die Ergebnisse. Führen Sie daher echte Lasttests im Nicht-GUI-Modus durch und öffnen Sie anschließend die gespeicherte Ergebnisdatei.

Konfigurationselemente

Konfigurationselemente legen Standardwerte und Variablen für die spätere Verwendung durch Sampler fest.

Die folgende Abbildung zeigt einige häufig verwendete Konfigurationselemente in JMeter.

Baumdiagramm von JMeter Konfigurationselemente: CSV-Datensatzkonfiguration, HTTP-Cookie-Manager, Anmeldekonfigurationselement, HTTP-Anforderungsstandardwerte und FTP-Anforderungsstandardwerte

CSV-Datensatzkonfiguration

Angenommen, Sie möchten eine Website mit 100 Benutzern testen, die sich mit unterschiedlichen Anmeldedaten anmelden. Sie müssen das Skript nicht 100 Mal aufzeichnen. Sie können das Skript parametrisieren, um verschiedene Anmeldedaten einzugeben. Diese Anmeldeinformationen (z. B. Benutzername und Passwort) können in einer Textdatei gespeichert werden. JMeter Es verfügt über ein Element, mit dem Sie verschiedene Parameter aus dieser Textdatei lesen können. Es handelt sich um die „CSV-Datensatzkonfiguration“, die dazu dient, Zeilen aus einer Datei zu lesen und sie in Variablen aufzuteilen.

JMeter Testplanstruktur mit ausgewählter CSV-Datensatzkonfiguration unter einem Anmelde-Controller neben HTTP-Anforderungsstandardeinstellungen

Dies ist ein Beispiel für CSV-Daten. Es handelt sich um eine Textdatei, die die Benutzernamen und Passwörter enthält, die zum Anmelden auf Ihrer Zielwebsite verwendet werden.

Die Textdatei csv_data.txt enthält vier durch Kommas getrennte Zeilen mit den Werten für Benutzername, Passwort und Cookie-Länge.

HTTP-Cookie-Manager

Lassen Sie uns dies anhand eines Beispiels verstehen.

Sie haben Ihren Browser verwendet (Firefox(z. B. Chrome usw.) zum Durchsuchen www.google.com.

Sie melden sich mit Ihrem Benutzernamen und Ihrem Passwort an.

Ihr Benutzername und Ihr Passwort werden als Cookies auf Ihrem Computer gespeichert.

Das nächste Mal, wenn Sie uns besuchen www.google.comSie müssen sich nicht erneut anmelden, da Ihr Browser Ihre Cookies als Benutzerdaten für die Anmeldung verwendet.

Der HTTP-Cookie-Manager verfügt über dieselbe Funktion wie ein Webbrowser. Wenn eine HTTP-Anfrage gestellt wird und die Antwort ein Cookie enthält, speichert der Cookie-Manager dieses Cookie automatisch und verwendet es für alle zukünftigen Anfragen an diese Website.

Standardeinstellungen für HTTP-Anforderungen

Mit diesem Element können Sie Standardwerte festlegen, die Ihre HTTP-Request-Controller verwenden.

Zum Beispiel,

Sie senden 100 HTTP-Anfragen an den Server google.com.

Sie müssten den Servernamen google.com für alle 100 Anfragen manuell eingeben.

Alternativ können Sie ein einzelnes HTTP Request Defaults-Element hinzufügen, dessen Feld „Server Name or IP“ auf google.com gesetzt ist, wie unten gezeigt.

Standardeinstellungen für HTTP-Anfragen mit google.com als Servernamen, Port 80 und Verbindungs- und Antwort-Timeouts

Sie müssen es nicht 100 Mal tippen. Dieses Element wird im Tutorial ausführlich erklärt. JMeter Performance Testing.

Login-Konfigurationselement

Mit dem Login-Konfigurationselement können Sie Benutzernamen- und Passworteinstellungen in Samplern hinzufügen oder überschreiben.

Beispielsweise möchten Sie simulieren, dass sich ein Benutzer auf der Website anmeldet. www.facebook.com mit einem Benutzernamen und einem Passwort. Sie können das Login-Konfigurationselement verwenden, um diese Benutzername- und Passworteinstellungen in einer Benutzeranfrage hinzuzufügen.

Anmeldekonfigurationsfeld mit dem Benutzernamen guru99 und einem maskierten Passwortfeld

Das Anmeldekonfigurationselement im Vergleich zur CSV-Datensatzkonfiguration

Login-Konfigurationselement CSV-Datensatzkonfiguration
Wird verwendet, um eine Benutzeranmeldung zu simulieren Wird verwendet, um mehrere Benutzeranmeldungen zu simulieren
Nur für Anmeldeparameter (Benutzername und Passwort) geeignet. Geeignet für große Parameterzahlen

Zusammen decken diese beiden Elemente nahezu jedes Anforderungsszenario ab, dem Sie begegnen werden. Leistungstest-Tools Arbeit.

Häufig gestellte Fragen

Es sagt JMeter Wie lange dauert es, bis alle Threads ausgeführt werden? Zehn Threads mit einer Anlaufzeit von 100 Sekunden starten im Abstand von zehn Sekunden. Eine zu kurze Anlaufzeit überlastet den Server und verursacht Fehler, die kein normaler Benutzer jemals auslösen würde.

Timer fügen zwischen den Anfragen eine Pause ein, sodass die simulierte Last dem tatsächlichen Surfverhalten ähnelt und nicht einer Flut von Anfragen. Assertions prüfen jede Antwort und markieren eine Anfrage als fehlgeschlagen, wenn der Statuscode, der Text oder die Dauer nicht den Vorgaben entspricht.

Sie gruppieren und verzweigen die darunterliegenden Anfragen. Ein Loop-Controller wiederholt seine Kind-Anfragen, ein If-Controller führt sie bedingt aus, und ein Transaction-Controller meldet die gesamte Gruppe als einen zeitlich festgelegten Schritt in den Ergebnissen.

Nein. Listener wie „Ergebnisbaum anzeigen“ puffern jede Messung und verfälschen die gemeldeten Werte. Führen Sie den Test im Nicht-GUI-Modus aus, schreiben Sie die Ergebnisse in eine Datei und laden Sie diese Datei nach Abschluss des Tests in einen Listener.

Konfigurationselemente und Vorprozessoren werden zuerst angewendet, dann läuft der Sampler, anschließend Nachprozessoren, Assertions und Listener. Auch der Gültigkeitsbereich ist wichtig: Ein Element auf Planebene gilt für jede darunterliegende Anfrage.

Es eignet sich gut zum Erkennen von Mustern. Die Übergabe einer Ergebnisdatei an einen Assistenten deckt die langsamsten Labels, Fehlerhäufigkeiten und Reaktionszeittrends deutlich schneller auf als das Einlesen einzelner Zeilen. Überprüfen Sie die Ergebnisse stets anhand der Rohdaten, bevor Sie Maßnahmen ergreifen.

Ja. Es erstellt Entwürfe. Groovy zum BeispieltracWerte festlegen, Nutzdaten erstellen und Variablen innerhalb eines JSR223-Elements setzen. Überprüfen Sie jeden Vorschlag, da häufig auf die veraltete BeanShell-API oder Variablen zurückgegriffen wird, die JMeter wird nicht offengelegt.

Eine Thread-Gruppe und ein Sampler. Alles andere ist optional. In der Praxis wird ein Listener hinzugefügt, um die Ergebnisse sichtbar zu machen, und Standardwerte oder eine Datendatei werden hinzugefügt, sobald sich dieselben Werte in mehreren Anfragen wiederholen.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: