Jmeter, environnements et variables pré-définies

Depuis quelques temps j’utilise assez régulièrement jmeter, aussi bien pour faire des tests de charges que pour des tests fonctionnels.

Une problématique c’est rapidement posée : comment facilement tester sur les différents environnements – dev, preprod et prod dans mon cas -
En fonction de la plateforme, il y a plusieurs choses qui changent, l’url, les jeux de données – login password, album, questionnaire, … -

Comment jouer avec Jmeter et les environnements ?

Ma première solution, pour répondre à un besoin urgent, fut de modifier le fichier jmx – au format xml – avec un bon vieux rechercher / remplacer et le tour était joué.  Certes pas propre, mais quand on a peu de temps il faut être efficace… Ça nous ai tous arrivé, le principal c’est d’en être conscient.
Dans un second temps, après avoir étudié un peu plus les fonctions offertes par jmeter, je me suis servi des variables pré-définies.
J’ai commencé par rajouter un jeux de variables pré-définies que j’éditais en fonction de la plateforme à tester et j’ai rapidement évolué vers une autre solution plus propre.
Un jeux de variables par environnement que j’active ou désactive au besoin. Dans ce jeux de variables tous les éléments qui varient en fonction de la plateforme

L’écran en question avec les 3 variables pré-définies

Pour l’exemple, je n’ai défini que 3 variables, PROTOCOLE, HOST et BASEPATH. Ca me permet de « variabiliser » le début de l’url. dans l’exemple

  • prod : https://encrypted.google.com/
  • preprod : http://www.google.com
  • dev : http://localhost/goggle/

en variable ca donnerai ${PROTOCOLE}://{$HOST}{$BASEPATH}

On peu aussi rajouter le port, l’encodage, les timeout, un path vers un fichier. Tous les inputs de jmeter peuvent recevoir des variables.

Et dans une requête http ca donnerai quoi ?

Voyons comment utiliser ces variables dans jmeter. Pour l’exemple, j’ai crée 2 requêtes http de test.

Il suffit de rentrer ${LE_NOM_DE_LA_VARIABLE} dans les différents champs de jmeter. On retrouve donc ${HOST}, ${PROTOCOLE}. En regardant le chemin, on voit que jmeter arrive très bien à concaténer avec du texte, on a par exemple ${BASEPATH}/search?q=webozor.

Pour changer de plateforme, je n’ai donc plus qu’à activer ou pas le bon jeux de variable, le fameux « clic clic » et c’est bon…

clic droit sur le config et activer/désactiver.

Et la dernière capture pour montrer que jmeter forge bien sa requête en fonction de la config activée et des variables qui y sont définies. – Bon en l’occurrence, j’ai du lancer les test, puis changer la config et après faire le screenshot, ce qui explique la requête vers la preprod alors que c’est prod qui semble activée… dur de débuter sur un blog et de penser a tout -

quelques informations en plus :

  • Si la même variable est définie plusieurs fois, c’est la dernière valeur qui gagne – jmeter traite de haut en bas donc la définition la plus basse l’emportera -
  • On peut activer et désactiver massivement les configs…
  • Pour les variables prédéfinies générales, c’est inclut de base dans le plan de test

J’espère que cet article vous a plus et qu’il vous aidera à mieux concevoir vos tests avec jmeter.

Si vous avez des questions, des remarques, les commentaires sont la pour ca.

Pages:

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>