2016-05-27 9 views
1

Ich habe gerade angefangen zu spielen mit Jmeter für meine Leistung/Belastung Tests und habe eine grundlegende Frage trotz der Lektüre der offiziellen Dokumentation. Wäre hilfreich, wenn jemand mein Verständnis über Threads und Rampup-Zeiten validiert.jmeter Gewinde und rampup Verständnis

Beispiel 1:

Threads: 4 
RampupTime: 0.1 
No of requests (test cases): 1000 

Wie funktioniert die Verteilung Thread oben passiert?

Beispiel 2:

Threads: 4 
RampupTime: 1 
No of requests (test cases): 1000 

Wie funktioniert die Verteilung Thread oben passiert?

Mein Verständnis in diesem Fall ist Jmeter würde 1 Sekunde dauern bis 4 Threads Spin. Und die Tests, die nach einer Sekunde (sagen wir ab Testfall 10) 4 gleichzeitige Threads laufen, werden 4 verschiedene Tests treffen? (dh in einem gleichzeitigen Batch von 4) Ist das korrekt?

Bitte helfen. Ich bin ein bisschen verwirrt mit der Korrelation zwischen den oben genannten 3 Parametern. Jede Illustration würde sehr geschätzt werden. Vielen Dank.

+0

Ich bin nicht sicher, ob Sie RampupTime weniger als 1 Sekunden angeben können, denn wenn Sie in die Implementierung schauen https://jmeter.apache.org/api/org/apache/jmeter/threads/ThreadGroup.html#setRampUp(int) Rampup nimmt nur int-Wert, so dass es auf 0,1 eingestellt wird wie ein 0-Wert –

Antwort

3

Also für die erste Frage nicht gibt es keine Rampup Zeit für etwas weniger als 1

Warum?

weil rampupTime ist int anyting weniger als eine 0.

betrachtet http://svn.apache.org/viewvc/jmeter/branches/doc-v2_3_1/src/core/org/apache/jmeter/threads/ThreadGroup.java?revision=1196285&view=markup#l227

public void setRampUp(int rampUp) { 
        setProperty(new IntegerProperty(RAMP_TIME, rampUp)); 
       } 

Für die zweite Frage alle 250 Millisekunden gibt es einen Thread erzeugt und nach einer Sekunde werden Sie 4 Threads laufen .

http://svn.apache.org/viewvc/jmeter/branches/doc-v2_3_1/src/core/org/apache/jmeter/engine/StandardJMeterEngine.java?revision=1196285&view=markup#l399

int rampUp = group.getRampUp(); 
          float perThreadDelay = ((float) (rampUp * 1000)/(float) numThreads); 

auf Ihr Verständnis von concurrrent Batch Kommen wir zurück. NEIN es ist nicht so, jeder Thread wird unabhängig ausgeführt, wenn zB aus einem unbekannten Grund einer der Threads gehängt wird, andere drei werden noch laufen. Es ist nicht so, dass sie auf den Abschluss des ersten Threads warten, um den zweiten Batch der Anfrage zu starten.

+0

Groß sein. Danke für die Erklärung. Habe ich recht, wenn ich sage, dass Jmeter in meinem zweiten Beispiel nach 1 Sekunde dafür sorgt, dass immer 4 aktive Threads die Testfälle teilen und erobern. – user1189332

+0

Ja, es werden 4 aktive Threads parallel durch die Testsequenz laufen –