J'essaie d'automatiser certains tests de perf. Je passerais des emplacements de serveur dans un jmx générique à partir d'un travail Jenkins. J'aimerais pouvoir faire quelque chose comme:
jmeter -n -t foo.jmx -JtestingIP = IP
et demandez à foo.jmx de récupérer testingIP
.
Quelle est la bonne façon de procéder? Lorsque j'exécute cette commande jmeter, elle indique que la variable a été stockée, mais l'insertion de ${testingIP}
Ou ${\_\_P(testingIP,)}
dans le jmx entraîne ${testingIP}
Ou ${\_\_P(testingIP,)}
à interpréter comme une simple chaîne.
Qu'est-ce que je fais mal/ne fais pas du tout? Est-ce seulement possible?
Tout ce que vous devez faire est de démarrer votre JMeter à partir de la ligne de commande (ou Shell) avec l'option - J . Par exemple :
-JTestIP = 10.0.0.1
Et dans votre script, pour obtenir la valeur, utilisez simplement la fonction _ P :
Exemple:
${__P(TestIP)}
Ça devrait le faire.
Notez que vous devez mettre une valeur par défaut si vous exécutez le script sans transmettre cette propriété JMeter comme:
$ {__ P (TestIP, 1.1.1.1)}
Jetez un oeil à ce lien http://mkbansal.wordpress.com/2012/08/01/jmeter-command-line-script-execution-with-arguments/ . J'essaierais également de spécifier la valeur par défaut, comme ${__P(testingFromCommandLineIP,defaultIP)}
où testingFromCommandLineIP
- argument que vous spécifiez lors de l'exécution du plan de test à partir de la ligne de commande, defaultIP
- valeur par défaut