|
04 - Tests - JMeter |
Exo Suivant |
|||
---|---|---|---|---|---|
Installation |
Présentation |
Tester les contrôleurs |
Lancer une charge |
||
|
Installation de JMeter
Récupérez la version de JMeter sur Apache JMeter.
Prenez la version associée à votre JDK, nous sommes en Java 17, vous pouvez prendre la version 5+ de JMeter.
Dé zippez l'archive où vous voulez (installez et utilisez 7-Zip si besoin).
Vérifiez que vous avez bien une variable système JAVA_HOME qui pointe vers votre JDK.
Allez dans le dossier d'installation de JMeter, puis bin et double cliquez sur jmeter.bat (ou .sh sous Unix).
Paramétrage de JMeter
JMeter va nous permettre de rejouer un scénario sur notre site web.
Par exemple :
- J'arrive sur la première page du site
- Je m'authentifie (df@aol.com/df)
- Je regarder la liste de mes comptes
- Je regarde le détail des opérations du comptes n°12
- Je reviens sur le menu
- Je vais sur la page des virements
- Je réalise un virement
- Je reviens sur la page menu
- Je me déconnecte
JMeter sait enregistrer les requête HTTP (et UNIQUEMENT les requêtes HTTP).
Pour ce faire il devra se comporter comme un proxy.
Suivez les informations de votre support pour mettre en place un proxy avec JMeter. A noter qu'il est préférable d'utiliser Firefox qui a, contrairement à Chrome, une configuration indépendante de Internet Explorer.
Tester les contrôleurs
Démarrez
- votre proxy JMeter
- démarrez dans votre Eclipse votre serveur JEE
- installez Firefox
- Paramétrez votre plugin FoxyProxy
- prenez FireFox et allez sur la page login : http://localhost:8080/en04.jmeter.gatling.banque/
Jouez votre scénario, restez simple.
A la fin de votre scénario :
- fermez votre navigateur
- arrêtez le proxy JMeter
- n'arrêtez PAS votre serveur JEE.
Regardez dans JMeter, vous allez retrouver toutes les requêtes HTTP.
Dans votre Plan de Test, créez un Thread Group (ou Groupe d'unités). Vous pouvez changer son nom en scenarion01 par exemple.
Supprimez les requêtes qui ne servent pas, déplacez les autres dans votre Thread Group (faites un glisser / déposer).
On ne garde que les appels aux contrôleurs ainsi que le premier appel à la page login.
Dans le cas de doublons, vérifiez que les requête HTTP est bien la même.
Mise en commun du paramétrage
Ajoutez à votre Thread Group un HTTP Header Manager (ou Gestionnaire d'entêtes HTTP).
Prenez un de ceux de vos requêtes HTTP.
Ajoutez à votre Thread Group un HTTP Request defaults (ou Paramètres HTTP par défaut) qui portera le nom du serveur (localhost), le numéro de port (8080), le protocol (http). Retirez de toutes vos requêtes HTTP ses informations.
Ajoutez à votre Groupe d'unités un HTTP Cookie Manager (ou Gestionnaire de cookies HTTP) qui portera l'HttpSession du JEE.
A ce stade vous pouvez rejouer votre scenario en cliquant sur la flèche verte. Vous pouvez en modifiant le paramétrage de votre Thread Group lui demander de jouer 50x (information Number of Threads) le scénario en même temps.
Voir un résultat
Mais on ne voit rien dans JMeter, seul votre console Eclipse vous dira ce qui se passe, c'est pour cela qu'il ne fallait pas arrêter son serveur JEE.
Ajoutez deux Listener comme View Results Tree et Aggregate Report à votre Thread Group. Relancez votre scénario.
Regardez vos listener, ils sont les informations remontées par JMeter.
Vous pouvez les remettre à zéro en cliquant sur le ballai.
Les Assert
Les listener vous donnent des indications, mais à ce stade on ne sait pas si : quand on demande à aller sur la page qui liste nos comptes on y arrive bien.
Pour valider que les enchaînements entre requêtes se passent correctement nous allons ajouter des Assert à nos requêtes HTTP.
DANS la requête HTTP (votre pipette) ajoutez une Response Assertion
Indiquez ce que vous attendez comme résultat lors de l'appel à votre requête HTTP.
Dans cet exemple : on précise que le Text Response aura comme Pattern Substring de
<!-- jmeter:login -->
Remarque : pour que cela fonctionne il faut ajouter dans les JSPs le commentaire qui se trouve dans vos assertions. Vos JSPs devraient déjà avoir ce type de commentaire juste après le tag body.
Faites, au moins, une Response Assertion par requête HTTP et relancez vos tests. Cette fois vous savez que si c'est OK c'est que la requête a correctement fonctionné.
Rappel : Vous pouvez effacer le contenu des listener en cliquant sur les balais.
Nous pourrions ajouter d'autre assertions, par exemple sur HTTP status.
Notez que vous pouvez aussi faire usage des assertions XPath, qui ressemblent beaucoup à des règles de sélecteurs HTML/CSS.
|
04 - Tests - JMeter |
Exo Suivant |
|||
---|---|---|---|---|---|
Installation |
Présentation |
Tester les contrôleurs |
Lancer une charge |
||
|