Inkrement Benutzer definierte variable in JMeter
Habe ich ein register, REST-service für Leistung getestet werden. einzige erforderliche parameter mobilenumber muss geändert werden für jeden loop/thread-Anforderung
Wie kann ich die Schrittweite meine Benutzer definierten Variablen (durch den Inkrement-Wert gespeichert, der andere udv), während Gewindeschneiden/Schleifen mehrere tests, die als Teil der Belastungs-test.
Versucht zu haben, einen jsr-233 pre-Prozessor für alle erfolgreicher Registrierung Anfragen
Möchte ich nicht verwenden, csv, ich habe nur ein parameter geändert werden
Lese ich über var.get() und vars.put () - Funktionen, die verwendet werden können, aber nicht immer durch es richtig.
Versucht der folgende code - die log-in unten gezeigten code
log.info("Before execution")
log.info("${mobileNumber}") //my udv mobileNumber
log.info("${increment}") //my udv increment value
inc = ${increment}
long number = Long.parseLong(vars.get("mobileNumber"))
number = number + inc
log.info("Incremented number")
log.info(String.valueOf(number))
vars.put("mobileNumber", String.valueOf(number))
log.info("After Execution")
log.info("${mobileNumber}")
Log :
2014/11/25 09:25:26 INFO - jmeter.threads.JMeterThread: Thread started: Dummy services 1-1
2014/11/25 09:25:26 INFO - jmeter.protocol.java.sampler.JSR223Sampler: Before execution
2014/11/25 09:25:26 INFO - jmeter.protocol.java.sampler.JSR223Sampler: 9990000000
2014/11/25 09:25:26 INFO - jmeter.protocol.java.sampler.JSR223Sampler: 1000
2014/11/25 09:25:26 INFO - jmeter.protocol.java.sampler.JSR223Sampler: Incremented number
2014/11/25 09:25:26 INFO - jmeter.protocol.java.sampler.JSR223Sampler: 9990001000
2014/11/25 09:25:26 INFO - jmeter.protocol.java.sampler.JSR223Sampler: After Execution
2014/11/25 09:25:26 INFO - jmeter.protocol.java.sampler.JSR223Sampler: 9990000000
2014/11/25 09:25:26 INFO - jmeter.threads.JMeterThread: Thread finished: Dummy services 1-1
Als pro-log, Inkrement erfolgreich ist, aber die vars.put() nicht erfolgreich war ??
InformationsquelleAutor Suhas Deshpande | 2014-11-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gegeben als mobile-Nummern können bis zu 15 Ziffern lange Sie brauchen, um Lange Java-Klasse.
Vorausgesetzt, dass der UDV hält Handy-Nummer ist die "Nummer" können Sie verwenden Sie den folgenden code-snippet:
Können Sie auch erwägen, __RandomString() JMeter-Funktion zum generieren von Zufallszahlen beliebiger Länge (die Funktion eine String-Darstellung).
Für zusätzliche Informationen über
vars
,ctx
und anderen JMeter API-Objekte stellt den scripting-fähigen test-Elemente beziehen sich auf Wie zu verwenden BeanShell: JMeter Lieblings-built-in-Komponente guide.Dein Skript funktioniert, gibt es vielleicht ein Problem in JSR223 Sampler. Wenn Sie eine Debug-Sampler und die Ergebnisse Baum Zuhörer nach Ihrem JSR223 Sampler Sie werden sehen, dass Ihre
mobileNumber
variable wird inkrementiert, i.stack.imgur.com/Bf5XI.png Wie zum Debuggen von Apache JMeter script für debugging-Techniken, Tipps und tricksIch denke, es ist etwas zu tun, wie JMeter verwendet die Variablen. Ich bin nicht immer der erhöhte Wert mit ${varName} aber immer es mit vars.get("varName"). ${} Verwendet einige voreingestellte Werte verwendet werden, für den thread. Danke für die Hilfe mich mit ihm.
InformationsquelleAutor Dmitri T
Normalerweise verwende ich BSFPre(Post)Prozessor + Groovy. In diesem Fall würde es Aussehen wie
InformationsquelleAutor olyv
Wenn wir die Aktualisierung eines JMeter-variable, die wir nicht zugreifen können, wird der aktualisierte Wert mit ${varName} format (Nicht sicher von Gründen). Ich habe Sie erfolgreich bekam der aktualisierte Wert mit vars.get("varName"} - Funktion auf.
Log:
Thnaks für die Hilfe Dmtri und olyv
InformationsquelleAutor Suhas Deshpande
Universal inc long-Variablen:
Parameter: Variable name
InformationsquelleAutor