Sie können es basierend auf einer Variablen ändern, die Sie in einem Startthread festlegen. Siehe unten.
In Jmeter how do I set a variable number of threads using a beanshell sampler variable?
jedoch, sobald die Thread-Gruppe begonnen hat man es nicht ändern kann. Für den Typen, der diese Funktion nicht für nützlich hält, stimme ich nicht zu. Es gibt viele Arten von Belastungstests und sie haben nicht alle die gleiche Anzahl von Benutzern, die für die Dauer laufen. Hier sind nur zwei Beispiel Arten von Unternehmen Lasttests, die wir bei der Bank führen, wo ich arbeite:
- Dauertest - gleiche Anzahl von Benutzern die ganze Zeit (möglicherweise mit einer kurzen Anlaufphase) läuft
- Break Point Test - Rampe bis die Anzahl der Benutzer schrittweise, bis die Anwendung bricht
- Spike-Test - lief mit einer konstanten Anzahl von Benutzern, sondern sporadisch
Wurf in einer großen Anzahl von Benutzern
Ein Breakpoint-Test erhöht die Anzahl der Benutzer, bis die Anwendung abbricht (der Punkt ist, um zu sehen, wie hoch Ihre App skalieren kann). Sie können dies mit der Eigenschaft "ramp up period" der Thread-Gruppen erledigen.Wenn Sie die Hochlaufzeit auf 1000 und die Anzahl der Threads auf 100 einstellen, wird alle 10 Sekunden ein Thread hinzugefügt.
Spike-Tests sind wie Dauertests aber bei einigen Abständen in einer große Anzahl von Benutzern einloggen. Dies verwendet wird, um die Anwendungen Reaktionszeit während der Stoßzeiten Guage oder wie sie reagieren, wenn Sie ganz plötzlich eine große Anzahl von bekommen Benutzer (ein sehr reales Szenario).
Ich finde, dass Jmeter nicht alle Lasttest Szenarien behandelt, die in Enterprise-Belastungstests benötigt werden. Ein Workaround, den ich in Betracht ziehe, ist, einfach alle Threads zu starten, aber einen Weg zu finden, um einige von ihnen schlafen zu lassen. Sie können also die Anzahl der Threads auf 1000 setzen, aber 980 von ihnen schlafen lassen oder nichts tun. Dann, vielleicht, wenn die time_in_seconds% 5 == 0 (alle 5 Minuten) erlauben Sie den anderen Threads zu laufen - Simulation eines Spike-Tests. Die Idee ist, dass Sie die Threads fest auf 1000 programmieren können und immer 1000 Threads laufen lassen - aber sie müssen nicht immer etwas tun.
(mit anderen Worten können Sie wahrscheinlich einen Weg finden, aber man muss kreativ)
Update: Ich habe gerade dieses Plugin, die unterschiedlichen Arten von Tests ermöglicht. Habe es noch nicht ausprobiert, aber sieht vielversprechend aus: http://jmeter-plugins.org/wiki/ThroughputShapingTimer/
Können Sie Ihre Anforderungen beschreiben? Was genau möchten Sie erreichen, indem Sie die Anzahl der Benutzer-Threads dynamisch ändern? Was ist das Ziel Ihres Tests? –
dynamische Anzahl der Erhöhung und Verringerung der Belastung der Web-App. Ich kann es über Jmeter Plugin tun, aber ich muss die Threads und Wartezeiten vordefinieren, die ich nicht will. –
Ich verstehe das, aber warum? Sie müssen nicht warten, Sie können die Threads beliebig mit Plugins Ultimate oder Stepping Thread Group planen. Sie können Hunderte von ihnen in wenigen Sekunden hochfahren. Ich frage, weil ich noch nie von einer solchen Anfrage gehört habe und mich gefragt habe, warum jemand es brauchen würde. –