Envoyer en ligne de commande des paramètres à votre scénario JMeter

Voici un petit billet pour vous monter comment lancer JMeter en ligne de commande tout en paramétrant son scénario de test.

En effet, vous pouvez avoir l’idée ou l’envie de faire une série de test en jouant sur certains paramètres de votre scénario JMeter, le tout en ligne de commande. Par exemple, faire un test avec 1 utilisateur, puis le même test avec 10 utilisateurs, et le même avec 100 utilisateurs.

Bien évidemment vous pouvez les lancer depuis l’interface graphique de JMeter, à la suite, tout en modifiant le paramètre du nombre d’utilisateurs dans l’interface, mais c’est trop facile ;-).

Donc pour le faire en ligne de commande, il faut d’abord passer par l’interface graphique JMeter. En effet, nous avons besoin d’utiliser une fonction JMeter qui va permettre de lire une propriété JMeter et renvoyer sa valeur. Cette fonction doit être appelée à la place de la valeur du champ correspondant au paramètre que l’on veut rendre « paramétrable »…

Le mieux est d’abord de voir la capture d’écran :

Les différents ${__P(xxx,yyy)} correspondent à notre fonction JMeter qui permet de lire une propriété JMeter, et qui la renvoie.

Donc ici, on vient d’utiliser la fonction __P() (avec deux caractères soulignés avant le P) pour définir trois paramètres :

  • Le nombre d’unités d’exécution, qui prend soit la valeur de la variable JMeter nombreUnites ou si elle est inexistante, la valeur par défaut « 10 »
  • La durée de montée en charge, qui prend soit la valeur de la variable JMeter dureeMontee ou si elle est inexistante, la valeur par défaut « 50 »
  • La nombre d’itérations, qui prend soit la valeur de la variable JMeter nombreIterations ou si elle est inexistante, la valeur par défaut « 100 »

Comme vous l’aurez compris, la fonction __P() a deux paramètres, le premier pour indiquer la clé de la propriété à rechercher, lire et renvoyer, et le second (optionnel) étant la valeur par défaut si la clé n’existe pas.

Une fois que vous avez défini ainsi les différents champs que vous souhaitez « paramètriser », il ne reste plus qu’a lancer JMeter en ligne de commande avec la ou les valeurs.

Pour cela, on utilise l’option « -J » de JMeter. Celle-ci permet de définir un couple clé/valeur correspondant à une propriété JMeter. Pour notre exemple, la ligne de commande sera donc :

jmeter -n -l resultats.csv -t scenario.jmx -JnombreUnites=5 -JdureeMontee=10 -JnombreIterations=100

(Petit rappel : -n : mode non-gui, -l : fichier de résultats, -t : fichier scripts JMeter)

Voilà, maintenant vous pouvez jouer sur les valeurs de ces paramètres afin de faire plusieurs types de tests.

Plus d’infos sur les fonctions, voici la page réservée aux fonctions du manuel JMeter

./