web-dev-qa-db-fra.com

jmeter passe des variables de ligne de commande dans un jmx

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?

28
GeorgeFabian

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)}

52
Refael

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)}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

11
olyv
  1. Ouvrez le fichier Jmeter (jmx) dans l'interface graphique Jmeter et ajoutez des paramètres comme cette capture d'écran:

enter image description here Cliquez sur le bouton Enregistrer .

  1. Maintenant, exécutez la commande avec ces paramètres, par exemple:

    jmeter -t TestPlan.jmx -Jthreads=10 -Jcount=50 -Jrumpup=5 
    
3
Gavriel Cohen