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: