Was sind Timer?
Standardmäßig sendet JMeter die Anforderung, ohne zwischen den einzelnen Anforderungen eine Pause einzulegen. In diesem Fall könnte JMeter Ihren Testserver überfordern, indem in kurzer Zeit zu viele Anfragen gestellt werden.
Stellen Sie sich vor, Sie senden in wenigen Sekunden Tausende Anfragen an einen zu testenden Webserver. Das ist, was passiert!
Mit Timern kann JMeter zwischen den Anforderungen eines Threads verzögern . Ein Timer kann den Server lösen Überlastung Problem.
Auch im wirklichen Leben Besucher kommen nicht auf einer Website alle zur gleichen Zeit, aber in unterschiedlichen Zeitintervallen. Der Timer hilft also dabei, das Echtzeitverhalten nachzuahmen.
In diesem Tutorial lernen Sie
- Konstanter Timer
- Gaußscher Zufalls-Timer
- Uniform Random Timer
- BeanShell Timer
- BSF-Timer
- JSR223 Timer
- Verwendung des konstanten Timers
Im Folgenden finden Sie einige gängige Timertypen in JMeter
Konstanter Timer:
Ein konstanter Timer verzögert jede Benutzeranforderung um dieselbe Zeitdauer.
Gaußscher Zufalls-Timer:
Der Gaußsche Zufallszeitgeber verzögert jede Benutzeranforderung um eine zufällige Zeitdauer.
Parameter:
Attribut | Beschreibung |
---|---|
Name | Beschreibender Name für diesen Timer, der im Baum angezeigt wird |
Abweichungen (Millisekunden) | Ein Parameter der Gaußschen Verteilungsfunktion |
Konstanter Verzögerungsversatz (Millisekunden) | Zusätzlicher Wert in Millisekunden |
Die Gesamtverzögerung wird also wie folgt beschrieben:
Uniform Random Timer:
Ein einheitlicher Zufallszeitgeber verzögert jede Benutzeranforderung um eine zufällige Zeitdauer.
Parameter:
Attribut |
Beschreibung |
---|---|
Name |
Beschreibender Name für diesen Timer, der im Baum angezeigt wird |
Zufälliges Verzögerungsmaximum |
Maximale Zufallszahl von Millisekunden, die verzögert werden sollen. |
Konstanter Verzögerungsversatz (Millisekunden) |
Zusätzlicher Wert in Millisekunden |
Die Gesamtverzögerung ist die Summe aus dem Zufallswert und dem Versatzwert.
BeanShell Timer
Der BeanShell-Timer kann verwendet werden, um eine Verzögerungszeit zwischen jeder Benutzeranforderung zu generieren .
BSF-Timer
Der BSF-Timer kann verwendet werden, um eine Verzögerung zwischen jeder Benutzeranforderung unter Verwendung einer BSF-Skriptsprache zu erzeugen.
JSR223 Timer
Der JSR223-Timer kann verwendet werden, um mithilfe einer JSR223-Skriptsprache eine Verzögerung zwischen den einzelnen Benutzeranforderungen zu generieren
Verwendung des konstanten Timers
In diesem Beispiel verwenden Sie den konstanten Timer , um eine feste Verzögerung zwischen Benutzeranforderungen an google.com festzulegen .
Beginnen wir mit einem einfachen Testskript
- JMeter erstellt 100 Mal eine Benutzeranfrage an http://www.google.com
- Die Verzögerung zwischen jeder Benutzeranforderung beträgt 5000 ms
Hier ist die Roadmap für dieses praktische Beispiel:
Voraussetzung:
Wir verwenden die Schritte 1 und 2 im Tutorial JMeter Performance Testing erneut.
Schritt 1) 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 "Thread-Gruppe" die folgenden Thread-Eigenschaften ein
Mit dieser Einstellung kann JMeter erstellen eine zu http://www.google.com in Benutzeranforderung 100 mal
Schritt 2) Fügen Sie JMeter-Elemente hinzu
- Standardmäßig HTTP-Anforderung hinzufügen
- HTTP-Anfrage hinzufügen
Schritt 3) Fügen Sie einen konstanten Timer hinzu
Klicken Sie mit der rechten Maustaste auf Thread-Gruppe -> Timer -> Konstanter Timer
Konfigurieren der Thread-Verzögerung von 5000 Millisekunden
Schritt 4) Fügen Sie die Ansichtsergebnisse zur Tabelle hinzu
Ergebnisse in Tabelle anzeigen zeigt das Testergebnis im Tabellenformat an.
Klicken Sie mit der rechten Maustaste auf Hinzufügen -> Listener -> Ergebnis in Tabelle anzeigen
Ergebnisse in Tabelle anzeigen wird wie in der folgenden Abbildung angezeigt
Schritt 5) Führen Sie Ihren Test aus
Wenn Sie bereit sind, einen Test auszuführen, klicken Sie in der Menüleiste auf die Schaltfläche Ausführen oder auf die Kurztaste Strg + R.
Dies ist das Ergebnis dieses Tests
Lassen Sie uns in der obigen Abbildung beispielsweise die Probe 2 analysieren
- Startzeit ist 22: 05: 01.866
- Die Abtastzeit von Probe 2 beträgt 172 ms
- Konstanter Timer : 5000 ms (wie konfiguriert)
- Die Endzeit dieses Beispiels beträgt = 22: 05: 01.866 + 172 + 5000 = 22: 05: 07.038
Das Beispiel 3 sollte also zum Zeitpunkt 22: 05: 07.039 beginnen (wie in der obigen Abbildung gezeigt).
Die Verzögerung jeder Probe beträgt 5000 ms
Wenn Sie ändern, dass der konstante Timer Null ist , wird das Ergebnis geändert
Lassen Sie die Probe 1 analysieren
- Startzeit ist 22: 17: 39.141
- Die Abtastzeit von Probe 2 beträgt 370 ms
- Konstanter Timer : 0 ms (wie konfiguriert)
- Die Endzeit dieser Stichprobe beträgt = 22: 17: 39.141+ 370 + 0 = 22: 17: 39.511
Das Beispiel 2 sollte also zum Zeitpunkt 22: 17: 39.512 beginnen (siehe Abbildung oben).
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 TimerTestPlan.jmx in Jmeter
- Doppelklicken Sie auf Thread-Gruppe -> Ergebnis in Tabelle anzeigen
- Führen Sie den Test aus