Ich möchte einen JMeter-Test mit einer Anzahl von gleichzeitigen Threads ausführen, wobei jeder Thread eine Anfrage alle 10 Sekunden sendet.
Dies sind meine Thread-Eigenschaften.
Anzahl der Threads: 10
Hochlaufzeit: 10
Schleifenanzahl: 1
Ergebnis: 10 Anfragen verteilt über 10 Sekunden, also jede Sekunde eine Anfrage und genau was ich will.
Jetzt möchte ich diesen Test für 3 mal (30 Sekunden) ausführen. Also habe ich den Loop Count auf 3 gesetzt.
Aber das Ergebnis ist: 30 Anfragen in 10 Sekunden. Das ist seltsam, weil ich erwarten würde, das für 30 Sekunden zu laufen und 1 Anfrage pro Sekunde zu bekommen.
Wie kann ich dies mit JMeter erreichen?
Mein letztes Ziel ist es, diesen Test über einen langen Zeitraum durchzuführen und die Anzahl der Threads zu erhöhen.
Kann mir jemand Ratschläge geben, wie man das mit JMeter macht?
Ich habe das heute recherchiert und kam zu dieser Schlussfolgerung: Die Einstellung Loop Count ist eine vollständige falsche Bezeichnung . Es ist nicht Schleife in irgendeiner Art chronologischer Richtung, auch wenn Ihr Testplan Thread-Gruppen nacheinander ausführen aktiviert hat. Was es tut, ist multiplizieren Sie Ihre Thread-Gruppe und führen Sie alle Multiples gleichzeitig aus. Daher wird die Ramp-Up-Periode nur einmal respektiert und NICHT einmal pro "Schleife" - es gibt keine temporäre Schleife!
Eine Erklärung mit Graphen finden Sie hier: Ссылка
Scheint, dass die einfachste Möglichkeit, den Durchsatz in Ihren Tests zu kontrollieren, die Verwendung von Standard-Out-of-Box-Optionen ist. Konstanter Durchsatz-Timer oder benutzerdefinierter Durchsatz-Shaping-Timer von jmeter-plugins Sammlung .
In beiden Fällen wird die Struktur des Tests wie folgt aussehen:
Hier definiert der Loop Controller die Anzahl der Iterationen.
Sieht so aus, als ob die Timer nicht absolut genau sind und beide etwas anders konfigurierbar sind:
Hier ist auch eine Art praktisches Beispiel , wie der Durchsatz variiert werden kann.
Nach meiner Erfahrung mit Jmeter, wenn Sie
einstellenAnzahl der Threads: 10
Hochlaufzeit: 10
Schleifenanzahl: 1
Sie erstellen 10 Threads in 10 Sekunden, so dass Sie jede Sekunde einen Thread erstellen. Bei einer Schleifenanzahl von 1 wiederholen Sie dies einmal. Aber Wenn Sie die Anzahl der Schleifen erhöhen, denke ich, dass Sie nicht neue Threads erstellen, sondern die jmeter-Elementprozedur in der Thread-Gruppe wiederholen, daher beträgt die Zeit zwischen der Anfrage nicht 30 Sekunden aber etwas über 10s. Wenn Sie 30 Threads innerhalb von 30 Sekunden erstellen möchten, müssen Sie
einstellenAnzahl der Threads: 30
Hochlaufzeit: 30
Schleifenanzahl: 1
Wenn Sie 10 Threads für 3 mal wiederholen wollen mit einer Verzögerung von 10 Sekunden, sollten Sie einen Timert- & gt; Constant Timer mit einer Threadverzögerung von 10000 ms einfügen, damit Sie 30 Anfragen in 30 Sekunden erhalten Zeitpunkt der Ausführung der Aufgabe)
Mein Verständnis von Ramp-Up ist, dass ein Wert von 0 alle Threads zur gleichen Zeit (gleichzeitig) abfeuern wird.
Sie können möglicherweise erreichen, was Sie wollen, indem Sie Folgendes festlegen:
und dann mithilfe eines Controllers bestimmen, wann die einzelnen Schleifen beendet werden sollen.
Ja, der Parameter Loop Count ist nicht intuitiv. Von dem, was ich herausgefunden habe, ist es tatsächlich die Anzahl der Male, die der Thread / Benutzer einen bestimmten Test durchführt
Wenn ich also deine Absicht, die du willst, richtig verstehe:
Die Konfiguration sollte wie folgt aussehen:
Anzahl der Threads: N
Hochlaufzeit: 0
Schleifenanzahl: 3
Und im Constant Throughput Timer (innerhalb der Thread-Gruppe) sollten Sie Zieldurchsatz (Samples pro Minute) = 6 einstellen, was bedeutet, dass alle 10 Sekunden eine Anfrage gestellt wird
Tags und Links jmeter