Développer un plan de test avec JMeter             par Gomes Rodrigues (arodrigues.developpez.com)                        ...
Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com)1 - Introduction.......................
Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com)    1 - IntroductionMaintenant que n...
Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com)Puis on ajoute des éléments/items qu...
Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com) 3-3-2 - SamplerPermet de définir le...
Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com) 3-3-3 - ListenersPermet de récupére...
Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com) 3-3-4 - Logic controllerPermet de c...
Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com) 3-3-5 - Config ElementParamétrage d...
Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com) 3-3-6 - Post ProcesseursPermet deff...
Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com) 3-3-7 - PréprocesseursPermet deffec...
Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com)•      ils doivent être placés en ta...
Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com) 3-4 - Ordre dexécution des éléments...
Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com) 4-1-3 - VariabiliserAfin de rendre ...
Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com)Voilà une des solutions possibles. 5...
Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com)    5-1-1-2 - Gestion des cookiesDe ...
Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com) 5-1-1-3 - Gestion du cacheDe même e...
Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com) 5-1-1-4 - Gestion des en-têtes HTTP...
Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com)                                    ...
Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com)Cela permet par exemple de simuler u...
Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com)Pour Firefox.Afin daider à trouver l...
Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com)Lors de lenregistrement, on se retro...
Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com)Notre scénario ressemblera à :Thread...
Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com)         ...         HTTP Request N ...
Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com)Plus dinformations sur http://arodri...
Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com)Puis dans le champ « Constant Delay ...
Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com) 5-1-4 - PacingPlus dinformation sur...
Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com)http://blog.milamberspace.net/index....
Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com)Sur cet écran il faut bien noter les...
Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com)Clic droit sur HTTP Proxy Server et ...
Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com)Voila on est prêt à enregistrer le s...
Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com)Comme on peut le voir dans JMeter, d...
Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com)    5-3 - Variabilisation des donnée...
Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com) 5-3-1 - Variable dun fichier CVSUn ...
Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com)Par exemple pour une recherche Googl...
Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com)Il est possible dutiliser Benerator ...
Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com) 5-4 - Ajout des points de contrôleA...
Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com) 5-5 - Test de fichiers téléchargésI...
Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com)Pour cela, clic droit sur Workbench ...
Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com)                                    ...
Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com) 6 - Création du plan de testMainten...
Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com)Puis il faut configurer le nombre du...
Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com) 7-3 - Test de charge distribuéSi un...
Prochain SlideShare
Chargement dans…5
×

Jmetertest

878 vues

Publié le

0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
878
Sur SlideShare
0
Issues des intégrations
0
Intégrations
2
Actions
Partages
0
Téléchargements
55
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Jmetertest

  1. 1. Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com) Date de publication : 30 mars 2011 Dernière mise à jour :Suite à larticle sur comment créer un plan de tests réaliste, regardons comment mettreen application ces conseils avec Apache JMeter.
  2. 2. Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com)1 - Introduction.............................................................................................................................................................32 - Présentation de JMeter..........................................................................................................................................33 - Fonctionnement de JMeter.................................................................................................................................... 3 3-1 - Test plan........................................................................................................................................................ 4 3-2 - Workbench.....................................................................................................................................................4 3-3 - Description des éléments JMeter..................................................................................................................4 3-3-1 - Thread group........................................................................................................................................ 4 3-3-2 - Sampler................................................................................................................................................. 5 3-3-3 - Listeners................................................................................................................................................6 3-3-4 - Logic controller......................................................................................................................................7 3-3-5 - Config Element..................................................................................................................................... 8 3-3-6 - Post Processeurs..................................................................................................................................9 3-3-7 - Préprocesseurs................................................................................................................................... 10 3-3-8 - Assertions............................................................................................................................................10 3-3-9 - Timers................................................................................................................................................. 10 3-3-10 - Plugin JMeter.................................................................................................................................... 11 3-3-10-1 - PerfMon.................................................................................................................................... 11 3-3-10-2 - Stepping Thread Group............................................................................................................11 3-4 - Ordre dexécution des éléments................................................................................................................. 124 - Processus de création dun plan de test............................................................................................................. 12 4-1 - Création des scénarios................................................................................................................................12 4-1-1 - Définition du scénario......................................................................................................................... 12 4-1-2 - Enregistrer/scripter.............................................................................................................................. 12 4-1-3 - Variabiliser...........................................................................................................................................13 4-1-4 - Exécuter.............................................................................................................................................. 13 4-2 - Création du plan de test............................................................................................................................. 135 - Conception dun scénario de test........................................................................................................................ 13 5-1 - Structure du scénario.................................................................................................................................. 13 5-1-1 - Paramétrage des propriétés par défaut..............................................................................................14 5-1-1-1 - Configuration du serveur cible................................................................................................... 14 5-1-1-2 - Gestion des cookies...................................................................................................................15 5-1-1-3 - Gestion du cache....................................................................................................................... 16 5-1-1-4 - Gestion des en-têtes HTTP....................................................................................................... 17 5-1-2 - Découper en action.............................................................................................................................21 5-1-3 - Temps de réflexion..............................................................................................................................23 5-1-4 - Pacing................................................................................................................................................. 26 5-2 - Création du scénario................................................................................................................................... 27 5-2-1 - Utilisation de lenregistreur de requêtes............................................................................................. 27 5-3 - Variabilisation des données.........................................................................................................................32 5-3-1 - Variable dun fichier CVS....................................................................................................................33 5-3-2 - Expressions régulières........................................................................................................................35 5-4 - Ajout des points de contrôle....................................................................................................................... 36 5-5 - Test de fichiers téléchargés........................................................................................................................ 37 5-6 - Débogage.................................................................................................................................................... 376 - Création du plan de test...................................................................................................................................... 407 - Exécution du test................................................................................................................................................. 41 7-1 - Baseline....................................................................................................................................................... 41 7-2 - Désactivation de lIHM.................................................................................................................................41 7-3 - Test de charge distribué..............................................................................................................................428 - Lire les résultats...................................................................................................................................................429 - Conclusion............................................................................................................................................................4210 - Remerciements.................................................................................................................................................. 4211 - Références......................................................................................................................................................... 42 -2-Copyright © 2011 - Gomes Rodrigues. Aucune reproduction, même partielle, ne peut être faite de ce site et de lensemble de son contenu : textes,documents, images, etc sans lautorisation expresse de lauteur. Sinon vous encourez selon la loi jusquà 3 ans de prison et jusquà 300 000 Ede dommages et intérêts. http://arodrigues.developpez.com/tutoriels/java/performance/developper-plan-test-avec-jmeter/
  3. 3. Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com) 1 - IntroductionMaintenant que nous savons comment créer des plans de tests de charge réalistes, regardons comment le faireavec loutil JMeter.Nous allons nous concentrer sur le test dune application web. 2 - Présentation de JMeterApache JMeter est un outil gratuit de test de charges permettant :• de tester les performances dune application en simulant des utilisateurs ;• denregistrer les temps de réponse.Pour cela il peut utiliser différents protocoles (HTTP, SOAP, LDAP, FTP...) afin de tester différents types dapplications(base de données, Webservice, application Web...).Dans le cas des applications Web, JMeter possède un élément Proxy permettant denregistrer automatiquement lescénario afin de gagner du temps et de permettre son utilisation à un large public.Tout cela en fait un outil assez complet.Pour ceux qui sont habitués à des outils commerciaux (HP Mercury LoadRunner, MicroFocus SilkPerformer ou NeotysNeoload), JMeter demande un peu plus defforts et surtout le reporting et le monitoring y sont quasiment absents. 3 - Fonctionnement de JMeterLorsquon lance JMeter, on se retrouve avec cet écran.On remarque quon a deux espaces de travail : Test plan et Workbench. Sur chacun, on peut ajouter des élémentsafin de construire notre plan de test. -3-Copyright © 2011 - Gomes Rodrigues. Aucune reproduction, même partielle, ne peut être faite de ce site et de lensemble de son contenu : textes,documents, images, etc sans lautorisation expresse de lauteur. Sinon vous encourez selon la loi jusquà 3 ans de prison et jusquà 300 000 Ede dommages et intérêts. http://arodrigues.developpez.com/tutoriels/java/performance/developper-plan-test-avec-jmeter/
  4. 4. Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com)Puis on ajoute des éléments/items qui vont composer nos scénarios. 3-1 - Test planCest lespace de travail où on va mettre les éléments qui constituent notre plan de test. 3-2 - WorkbenchCest un espace de travail temporaire.Attention il nest pas sauvegardé. 3-3 - Description des éléments JMeterVoilà une liste non exhaustive des éléments JMeter.La liste complète des éléments se trouve sur http://jakarta.apache.org/jmeter/usermanual/component_reference.html 3-3-1 - Thread groupCest lélément de base pour un scénario.Cest ici quon configurera le nombre dutilisateurs et ditérations et la durée du ramp up (durée de montée en charge). -4-Copyright © 2011 - Gomes Rodrigues. Aucune reproduction, même partielle, ne peut être faite de ce site et de lensemble de son contenu : textes,documents, images, etc sans lautorisation expresse de lauteur. Sinon vous encourez selon la loi jusquà 3 ans de prison et jusquà 300 000 Ede dommages et intérêts. http://arodrigues.developpez.com/tutoriels/java/performance/developper-plan-test-avec-jmeter/
  5. 5. Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com) 3-3-2 - SamplerPermet de définir le type de requête échangé avec le serveur (HTTP, FTP, JDBC...) et de les émettre. -5-Copyright © 2011 - Gomes Rodrigues. Aucune reproduction, même partielle, ne peut être faite de ce site et de lensemble de son contenu : textes,documents, images, etc sans lautorisation expresse de lauteur. Sinon vous encourez selon la loi jusquà 3 ans de prison et jusquà 300 000 Ede dommages et intérêts. http://arodrigues.developpez.com/tutoriels/java/performance/developper-plan-test-avec-jmeter/
  6. 6. Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com) 3-3-3 - ListenersPermet de récupérer et dafficher les résultats des tests (par exemple : fichiers, graphes). -6-Copyright © 2011 - Gomes Rodrigues. Aucune reproduction, même partielle, ne peut être faite de ce site et de lensemble de son contenu : textes,documents, images, etc sans lautorisation expresse de lauteur. Sinon vous encourez selon la loi jusquà 3 ans de prison et jusquà 300 000 Ede dommages et intérêts. http://arodrigues.developpez.com/tutoriels/java/performance/developper-plan-test-avec-jmeter/
  7. 7. Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com) 3-3-4 - Logic controllerPermet de choisir lordre dexécution des Samplers (par exemple : aléatoire, boucle, conditionnel). -7-Copyright © 2011 - Gomes Rodrigues. Aucune reproduction, même partielle, ne peut être faite de ce site et de lensemble de son contenu : textes,documents, images, etc sans lautorisation expresse de lauteur. Sinon vous encourez selon la loi jusquà 3 ans de prison et jusquà 300 000 Ede dommages et intérêts. http://arodrigues.developpez.com/tutoriels/java/performance/developper-plan-test-avec-jmeter/
  8. 8. Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com) 3-3-5 - Config ElementParamétrage des propriétés par défaut pour les requêtes HTTP, requêtes FTP, requêtes LDAP...Il permet aussi de définir des variables et des jeux de données. -8-Copyright © 2011 - Gomes Rodrigues. Aucune reproduction, même partielle, ne peut être faite de ce site et de lensemble de son contenu : textes,documents, images, etc sans lautorisation expresse de lauteur. Sinon vous encourez selon la loi jusquà 3 ans de prison et jusquà 300 000 Ede dommages et intérêts. http://arodrigues.developpez.com/tutoriels/java/performance/developper-plan-test-avec-jmeter/
  9. 9. Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com) 3-3-6 - Post ProcesseursPermet deffectuer des traitements après lexécution dune requête (ou plusieurs).En particulier on peut utiliser pour extraire des données des résultats, des expressions régulières avec le « RegularExpression Extractor » qui utilise la syntaxe de Apache Jakarta ORO. -9-Copyright © 2011 - Gomes Rodrigues. Aucune reproduction, même partielle, ne peut être faite de ce site et de lensemble de son contenu : textes,documents, images, etc sans lautorisation expresse de lauteur. Sinon vous encourez selon la loi jusquà 3 ans de prison et jusquà 300 000 Ede dommages et intérêts. http://arodrigues.developpez.com/tutoriels/java/performance/developper-plan-test-avec-jmeter/
  10. 10. Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com) 3-3-7 - PréprocesseursPermet deffectuer des prétraitements avant la requête, utile pour la préparation de données. 3-3-8 - AssertionsPermet de contrôler les réponses du serveur (par exemple : temps de réponse, la réponse contient-elle une chaînede caractères, taille, XML valide). 3-3-9 - TimersPermet dajouter des temps de pause entre chaque action (par exemple : temps constant, temps aléatoire).Il faut faire attention à : - 10 -Copyright © 2011 - Gomes Rodrigues. Aucune reproduction, même partielle, ne peut être faite de ce site et de lensemble de son contenu : textes,documents, images, etc sans lautorisation expresse de lauteur. Sinon vous encourez selon la loi jusquà 3 ans de prison et jusquà 300 000 Ede dommages et intérêts. http://arodrigues.developpez.com/tutoriels/java/performance/developper-plan-test-avec-jmeter/
  11. 11. Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com)• ils doivent être placés en tant quenfant dune requête pour que la pause soit exécutée avant lexécution de la requête ;• sils sont au niveau du Thread Group, ils sappliqueront pour chaque requête.Plus dinformations surhttp://blog.milamberspace.net/index.php/2009/02/08/jmeter-think-time-et-ordre-dexecution-les-bons-plans-212.html 3-3-10 - Plugin JMeterAfin de ne pas être limité par linstallation de base de JMeter, nous pouvons utiliser les plugins qui se trouvent àladresse http://code.google.com/p/jmeter-plugins/.Cela permettra aussi à ceux qui sont habitués à HP Loadrunner de sy retrouver plus facilement. 3-3-10-1 - PerfMonIl est important de superviser les serveurs cibles et les injecteurs. Pour cela on peut utiliser le plugin PerfMon.Ce plugin permet de superviser :• lutilisation du CPU ;• lutilisation de la mémoire ;• lutilisation du swap ;• le nombre daccès disque ;• lactivité du réseau. 3-3-10-2 - Stepping Thread GroupPermet daffiner la configuration du ramp up à la manière de HP Loadrunner.Plus dinformations sur http://code.google.com/p/jmeter-plugins/wiki/SteppingThreadGroup - 11 -Copyright © 2011 - Gomes Rodrigues. Aucune reproduction, même partielle, ne peut être faite de ce site et de lensemble de son contenu : textes,documents, images, etc sans lautorisation expresse de lauteur. Sinon vous encourez selon la loi jusquà 3 ans de prison et jusquà 300 000 Ede dommages et intérêts. http://arodrigues.developpez.com/tutoriels/java/performance/developper-plan-test-avec-jmeter/
  12. 12. Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com) 3-4 - Ordre dexécution des élémentsIl faut faire attention à lordre dexécution.Plus dinformations sur http://jakarta.apache.org/jmeter/usermanual/test_plan.html#executionorder 4 - Processus de création dun plan de testLe plus simple pour la création dun test avec JMeter est la façon décrite ci-dessous. 4-1 - Création des scénariosDans un premier temps, il faut créer les scénarios. 4-1-1 - Définition du scénarioPour plus dinformations ici. 4-1-2 - Enregistrer/scripterLa méthode la plus simple pour obtenir un script est dutiliser le proxy de JMeter pour enregistrer les requêteseffectuées entre le navigateur et le serveur. - 12 -Copyright © 2011 - Gomes Rodrigues. Aucune reproduction, même partielle, ne peut être faite de ce site et de lensemble de son contenu : textes,documents, images, etc sans lautorisation expresse de lauteur. Sinon vous encourez selon la loi jusquà 3 ans de prison et jusquà 300 000 Ede dommages et intérêts. http://arodrigues.developpez.com/tutoriels/java/performance/developper-plan-test-avec-jmeter/
  13. 13. Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com) 4-1-3 - VariabiliserAfin de rendre le scénario plus réaliste, ajouter des éléments non enregistrés par le proxy, éviter les effets de cache etdajouter la corrélation entre chaque actions/écrans, il faut utiliser un certain nombre déléments de JMeter (Timers,Pre processor...). 4-1-4 - ExécuterUne fois cela fait, il faut vérifier que le scénario est valide. Pour cela il suffit de lexécuter une fois avec un seulutilisateur. 4-2 - Création du plan de testUne fois tous les scénarios réalisés, il faut les regrouper dans un ou plusieurs plans de test. 5 - Conception dun scénario de testAvant de commencer tête baissée à scripter les scénarios il est important de prendre son temps afin de bien leschoisir. En effet en fonction des scénarios de test, on peut obtenir de mauvaises performances avec nimporte quelleapplication en simulant un usage irréaliste ou au contraire avoir des performances acceptables. De même on peut seretrouver avec énormément de tests afin dêtre le plus réaliste possible et donc afin de limiter ce problème, pensezà la loi de Pareto afin de faire le tri.Plus dinformations sur http://arodrigues.developpez.com/tutoriels/java/performance/plan-test-realiste/ 5-1 - Structure du scénarioAfin de faciliter la lecture des résultats et du scénario, il est conseillé de structurer ses scénarios. - 13 -Copyright © 2011 - Gomes Rodrigues. Aucune reproduction, même partielle, ne peut être faite de ce site et de lensemble de son contenu : textes,documents, images, etc sans lautorisation expresse de lauteur. Sinon vous encourez selon la loi jusquà 3 ans de prison et jusquà 300 000 Ede dommages et intérêts. http://arodrigues.developpez.com/tutoriels/java/performance/developper-plan-test-avec-jmeter/
  14. 14. Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com)Voilà une des solutions possibles. 5-1-1 - Paramétrage des propriétés par défautDans un premier temps on va ajouter des éléments « Config Element » afin de définir un certain nombre de propriétéspar défaut. 5-1-1-1 - Configuration du serveur ciblePour variabiliser le nom du serveur web, son port... il suffit dajouter un élément « HTTP Request Default » et demettre les bonnes valeurs.Le mettre en fils de « Test plan » ou « Thread Group » pour quil sapplique à lensemble des requêtes.Cela permet de changer facilement le serveur quon teste (passage dun serveur de développement à un serveurde test). - 14 -Copyright © 2011 - Gomes Rodrigues. Aucune reproduction, même partielle, ne peut être faite de ce site et de lensemble de son contenu : textes,documents, images, etc sans lautorisation expresse de lauteur. Sinon vous encourez selon la loi jusquà 3 ans de prison et jusquà 300 000 Ede dommages et intérêts. http://arodrigues.developpez.com/tutoriels/java/performance/developper-plan-test-avec-jmeter/
  15. 15. Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com) 5-1-1-2 - Gestion des cookiesDe même en ajoutant lélément « HTTP Cookie Manager », on activera la gestion des cookies.Ne pas oublier de :• cocher « Nettoyer les cookies à chaque itération » afin deffacer les cookies entre chaque itération ;• positionner Cookie Policy à compatibility pour la majorité des cas ;• le mettre en fils de « Test plan » ou « Thread Group » pour quil sapplique à lensemble des requêtes. - 15 -Copyright © 2011 - Gomes Rodrigues. Aucune reproduction, même partielle, ne peut être faite de ce site et de lensemble de son contenu : textes,documents, images, etc sans lautorisation expresse de lauteur. Sinon vous encourez selon la loi jusquà 3 ans de prison et jusquà 300 000 Ede dommages et intérêts. http://arodrigues.developpez.com/tutoriels/java/performance/developper-plan-test-avec-jmeter/
  16. 16. Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com) 5-1-1-3 - Gestion du cacheDe même en ajoutant lélément « HTTP Cache Manager », on activera la gestion du cache afin de simuler lecomportement dun navigateur Web en matière de cache. - 16 -Copyright © 2011 - Gomes Rodrigues. Aucune reproduction, même partielle, ne peut être faite de ce site et de lensemble de son contenu : textes,documents, images, etc sans lautorisation expresse de lauteur. Sinon vous encourez selon la loi jusquà 3 ans de prison et jusquà 300 000 Ede dommages et intérêts. http://arodrigues.developpez.com/tutoriels/java/performance/developper-plan-test-avec-jmeter/
  17. 17. Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com) 5-1-1-4 - Gestion des en-têtes HTTPAfin de paramétrer les en-têtes HTTP des requêtes envoyées, on peut ajouter un « HTTP Header Manager » - 17 -Copyright © 2011 - Gomes Rodrigues. Aucune reproduction, même partielle, ne peut être faite de ce site et de lensemble de son contenu : textes,documents, images, etc sans lautorisation expresse de lauteur. Sinon vous encourez selon la loi jusquà 3 ans de prison et jusquà 300 000 Ede dommages et intérêts. http://arodrigues.developpez.com/tutoriels/java/performance/developper-plan-test-avec-jmeter/
  18. 18. Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com) - 18 -Copyright © 2011 - Gomes Rodrigues. Aucune reproduction, même partielle, ne peut être faite de ce site et de lensemble de son contenu : textes,documents, images, etc sans lautorisation expresse de lauteur. Sinon vous encourez selon la loi jusquà 3 ans de prison et jusquà 300 000 Ede dommages et intérêts. http://arodrigues.developpez.com/tutoriels/java/performance/developper-plan-test-avec-jmeter/
  19. 19. Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com)Cela permet par exemple de simuler un navigateur particulier en paramétrant le User-Agent.Par exemple pour IE. - 19 -Copyright © 2011 - Gomes Rodrigues. Aucune reproduction, même partielle, ne peut être faite de ce site et de lensemble de son contenu : textes,documents, images, etc sans lautorisation expresse de lauteur. Sinon vous encourez selon la loi jusquà 3 ans de prison et jusquà 300 000 Ede dommages et intérêts. http://arodrigues.developpez.com/tutoriels/java/performance/developper-plan-test-avec-jmeter/
  20. 20. Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com)Pour Firefox.Afin daider à trouver les bons paramètres et leurs valeurs, on peut utiliser le proxy de la manière suivante.Activer « capture HTTP header » dans le « HTTP Proxy Server ». - 20 -Copyright © 2011 - Gomes Rodrigues. Aucune reproduction, même partielle, ne peut être faite de ce site et de lensemble de son contenu : textes,documents, images, etc sans lautorisation expresse de lauteur. Sinon vous encourez selon la loi jusquà 3 ans de prison et jusquà 300 000 Ede dommages et intérêts. http://arodrigues.developpez.com/tutoriels/java/performance/developper-plan-test-avec-jmeter/
  21. 21. Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com)Lors de lenregistrement, on se retrouvera avec les informations nécessaires. 5-1-2 - Découper en actionDans un premier temps nous allons découper le scénario en transactions/actions à laide de « Transaction controller » - 21 -Copyright © 2011 - Gomes Rodrigues. Aucune reproduction, même partielle, ne peut être faite de ce site et de lensemble de son contenu : textes,documents, images, etc sans lautorisation expresse de lauteur. Sinon vous encourez selon la loi jusquà 3 ans de prison et jusquà 300 000 Ede dommages et intérêts. http://arodrigues.developpez.com/tutoriels/java/performance/developper-plan-test-avec-jmeter/
  22. 22. Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com)Notre scénario ressemblera à :Thread group Transaction controller 1 HTTP Request 1 HTTP Request 2 ... HTTP Request N Transaction controller 2 HTTP Request 1 HTTP Request 2 - 22 -Copyright © 2011 - Gomes Rodrigues. Aucune reproduction, même partielle, ne peut être faite de ce site et de lensemble de son contenu : textes,documents, images, etc sans lautorisation expresse de lauteur. Sinon vous encourez selon la loi jusquà 3 ans de prison et jusquà 300 000 Ede dommages et intérêts. http://arodrigues.developpez.com/tutoriels/java/performance/developper-plan-test-avec-jmeter/
  23. 23. Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com) ... HTTP Request N ... Transaction controller N HTTP Request 1 HTTP Request 2 ... HTTP Request NCela nous permettra davoir des KPI pour chaque transaction définie et ainsi faciliter la lecture des résultats. 5-1-3 - Temps de réflexionAfin dêtre le plus réaliste possible, on va utiliser un temps variable. - 23 -Copyright © 2011 - Gomes Rodrigues. Aucune reproduction, même partielle, ne peut être faite de ce site et de lensemble de son contenu : textes,documents, images, etc sans lautorisation expresse de lauteur. Sinon vous encourez selon la loi jusquà 3 ans de prison et jusquà 300 000 Ede dommages et intérêts. http://arodrigues.developpez.com/tutoriels/java/performance/developper-plan-test-avec-jmeter/
  24. 24. Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com)Plus dinformations sur http://arodrigues.developpez.com/tutoriels/java/performance/plan-test-realiste/#LV-DOn peut capturer le temps de réflexion de lutilisateur lors de lenregistrement du script.Pour cela il faut ajouter un élément « Uniform Random Timer » au « HTTP Proxy Server ». - 24 -Copyright © 2011 - Gomes Rodrigues. Aucune reproduction, même partielle, ne peut être faite de ce site et de lensemble de son contenu : textes,documents, images, etc sans lautorisation expresse de lauteur. Sinon vous encourez selon la loi jusquà 3 ans de prison et jusquà 300 000 Ede dommages et intérêts. http://arodrigues.developpez.com/tutoriels/java/performance/developper-plan-test-avec-jmeter/
  25. 25. Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com)Puis dans le champ « Constant Delay Offset » mettre ${T}.A la fin de lenregistrement, on peut voir que des éléments « Uniform Random Timer » ont été créés avec la bonnevaleur. - 25 -Copyright © 2011 - Gomes Rodrigues. Aucune reproduction, même partielle, ne peut être faite de ce site et de lensemble de son contenu : textes,documents, images, etc sans lautorisation expresse de lauteur. Sinon vous encourez selon la loi jusquà 3 ans de prison et jusquà 300 000 Ede dommages et intérêts. http://arodrigues.developpez.com/tutoriels/java/performance/developper-plan-test-avec-jmeter/
  26. 26. Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com) 5-1-4 - PacingPlus dinformation sur comment fixer la durée de répétition dune requête sur - 26 -Copyright © 2011 - Gomes Rodrigues. Aucune reproduction, même partielle, ne peut être faite de ce site et de lensemble de son contenu : textes,documents, images, etc sans lautorisation expresse de lauteur. Sinon vous encourez selon la loi jusquà 3 ans de prison et jusquà 300 000 Ede dommages et intérêts. http://arodrigues.developpez.com/tutoriels/java/performance/developper-plan-test-avec-jmeter/
  27. 27. Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com)http://blog.milamberspace.net/index.php/2008/08/15/jmeter-fixer-la-duree-de-repetition-dune-requete-87.html 5-2 - Création du scénarioMaintenant que nous avons tous les éléments, on peut passer à lutilisation de lenregistreur de requêtes par le proxypour enregistrer le scénario.Il faut faire attention au fait que le proxy va enregistrer toutes les communications sortantes/entrantes du navigateurWeb et que donc il est important de désactiver tous les plugins/... afin de ne pas enregistrer de requêtes parasites. 5-2-1 - Utilisation de lenregistreur de requêtesPour cela, il faut commencer par ajouter lélément « HTTP Proxy Server »Clic droit sur Workbench et Add -> Non Test Elements -> HTTP Proxy Server - 27 -Copyright © 2011 - Gomes Rodrigues. Aucune reproduction, même partielle, ne peut être faite de ce site et de lensemble de son contenu : textes,documents, images, etc sans lautorisation expresse de lauteur. Sinon vous encourez selon la loi jusquà 3 ans de prison et jusquà 300 000 Ede dommages et intérêts. http://arodrigues.developpez.com/tutoriels/java/performance/developper-plan-test-avec-jmeter/
  28. 28. Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com)Sur cet écran il faut bien noter les paramètres du proxy car on les utilisera dans la suite pour configurer notrenavigateur Web pour lenregistrement du scénario.Cocher le paramètre Add Assertions si on veut générer un élément Asssertions automatiquement.Maintenant on va créer pour chaque action du scénario un « Transaction Controller » (on va prendre comme exemple,la recherche dun mot-clé sur Google). - 28 -Copyright © 2011 - Gomes Rodrigues. Aucune reproduction, même partielle, ne peut être faite de ce site et de lensemble de son contenu : textes,documents, images, etc sans lautorisation expresse de lauteur. Sinon vous encourez selon la loi jusquà 3 ans de prison et jusquà 300 000 Ede dommages et intérêts. http://arodrigues.developpez.com/tutoriels/java/performance/developper-plan-test-avec-jmeter/
  29. 29. Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com)Clic droit sur HTTP Proxy Server et Add -> Logic Controller -> Transaction ControllerLes renommer.Modifier dans « HTTP Proxy Server » loption « Target Controller » pour quelle pointe sur « Transaction Controller »nommé Accueil. - 29 -Copyright © 2011 - Gomes Rodrigues. Aucune reproduction, même partielle, ne peut être faite de ce site et de lensemble de son contenu : textes,documents, images, etc sans lautorisation expresse de lauteur. Sinon vous encourez selon la loi jusquà 3 ans de prison et jusquà 300 000 Ede dommages et intérêts. http://arodrigues.developpez.com/tutoriels/java/performance/developper-plan-test-avec-jmeter/
  30. 30. Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com)Voila on est prêt à enregistrer le scénario, pour cela il faut :• démarrer le proxy (bouton start dans lélément HTTP Proxy Server) ;• configurer votre navigateur web pour quil utilise ce proxy (on peut utiliser le plugin foxyproxy pour Firefox) ;• configurer votre navigateur web pour quil nutilise pas son cache (pensez à le vider avant) ;• reproduire le scénario à laide du navigateur web ;• arrêter le proxy une fois la capture du scénario fini.Ne pas oublier de faire pointer le navigateur sur le proxy.Par exemple sous IE. - 30 -Copyright © 2011 - Gomes Rodrigues. Aucune reproduction, même partielle, ne peut être faite de ce site et de lensemble de son contenu : textes,documents, images, etc sans lautorisation expresse de lauteur. Sinon vous encourez selon la loi jusquà 3 ans de prison et jusquà 300 000 Ede dommages et intérêts. http://arodrigues.developpez.com/tutoriels/java/performance/developper-plan-test-avec-jmeter/
  31. 31. Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com)Comme on peut le voir dans JMeter, de nouveaux sous-items sont apparus. - 31 -Copyright © 2011 - Gomes Rodrigues. Aucune reproduction, même partielle, ne peut être faite de ce site et de lensemble de son contenu : textes,documents, images, etc sans lautorisation expresse de lauteur. Sinon vous encourez selon la loi jusquà 3 ans de prison et jusquà 300 000 Ede dommages et intérêts. http://arodrigues.developpez.com/tutoriels/java/performance/developper-plan-test-avec-jmeter/
  32. 32. Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com) 5-3 - Variabilisation des donnéesPour rendre le scénario plus réaliste et faire attention à la gestion du cache, il faut variabiliser un certain nombrede choses comme :• lidentifiant et le mot de passe des utilisateurs ;• les entrées utilisateurs dans les formulaires ;• la sélection dun lien ;• etc.Plus dinformations sur http://arodrigues.developpez.com/tutoriels/java/performance/plan-test-realiste/#LV-A, http://arodrigues.developpez.com/tutoriels/java/performance/plan-test-realiste/#LV-B et http://blog.milamberspace.net/index.php/jmeter-pages/jmeter-variabilisation-de-donnees - 32 -Copyright © 2011 - Gomes Rodrigues. Aucune reproduction, même partielle, ne peut être faite de ce site et de lensemble de son contenu : textes,documents, images, etc sans lautorisation expresse de lauteur. Sinon vous encourez selon la loi jusquà 3 ans de prison et jusquà 300 000 Ede dommages et intérêts. http://arodrigues.developpez.com/tutoriels/java/performance/developper-plan-test-avec-jmeter/
  33. 33. Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com) 5-3-1 - Variable dun fichier CVSUn choix simple et pertinent est dutiliser un fichier CSV en entrée à laide de lélément « Config Element->CSV DataSet Config ».Les variables récupérées pourront être utilisées dans le reste du plan de test en utilisant la syntaxe suivante ${nomde la variable} - 33 -Copyright © 2011 - Gomes Rodrigues. Aucune reproduction, même partielle, ne peut être faite de ce site et de lensemble de son contenu : textes,documents, images, etc sans lautorisation expresse de lauteur. Sinon vous encourez selon la loi jusquà 3 ans de prison et jusquà 300 000 Ede dommages et intérêts. http://arodrigues.developpez.com/tutoriels/java/performance/developper-plan-test-avec-jmeter/
  34. 34. Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com)Par exemple pour une recherche Google. - 34 -Copyright © 2011 - Gomes Rodrigues. Aucune reproduction, même partielle, ne peut être faite de ce site et de lensemble de son contenu : textes,documents, images, etc sans lautorisation expresse de lauteur. Sinon vous encourez selon la loi jusquà 3 ans de prison et jusquà 300 000 Ede dommages et intérêts. http://arodrigues.developpez.com/tutoriels/java/performance/developper-plan-test-avec-jmeter/
  35. 35. Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com)Il est possible dutiliser Benerator pour générer ce fichier CSV. 5-3-2 - Expressions régulièresLutilisation des expressions régulières nous permettra de corréler des actions/écran entre eux.Par exemple pour récupérer la session id dun utilisateur, choisir un objet dans une liste...Plus dinformations sur http://blog.milamberspace.net/index.php/2009/12/31/quelques-cas-dutilisation-de-lextracteur-dexpression-reguliere-dans-jmeter-554.html. - 35 -Copyright © 2011 - Gomes Rodrigues. Aucune reproduction, même partielle, ne peut être faite de ce site et de lensemble de son contenu : textes,documents, images, etc sans lautorisation expresse de lauteur. Sinon vous encourez selon la loi jusquà 3 ans de prison et jusquà 300 000 Ede dommages et intérêts. http://arodrigues.developpez.com/tutoriels/java/performance/developper-plan-test-avec-jmeter/
  36. 36. Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com) 5-4 - Ajout des points de contrôleAfin de vérifier la réponse du serveur à la requête envoyée, il peut être utile dajouter des Assertions (au moinspendant la phase de création des scénarios).Afin davoir un élément Assertion automatiquement créé pour chaque action lors de lenregistrement du scénario, onpeut cocher le paramètre « Add Assertions » dans lélément « HTTP Proxy Server ».Puis il suffit de compléter avec le test voulu. - 36 -Copyright © 2011 - Gomes Rodrigues. Aucune reproduction, même partielle, ne peut être faite de ce site et de lensemble de son contenu : textes,documents, images, etc sans lautorisation expresse de lauteur. Sinon vous encourez selon la loi jusquà 3 ans de prison et jusquà 300 000 Ede dommages et intérêts. http://arodrigues.developpez.com/tutoriels/java/performance/developper-plan-test-avec-jmeter/
  37. 37. Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com) 5-5 - Test de fichiers téléchargésIl est possible de tester les fichiers téléchargés à laide dAPI Java.Pour les PDF il y a PDFBox : http://theworkaholic.blogspot.com/2010/03/asserting-pdfs.htmlPour les fichiers Microsoft Office il y a Apache POI : http://theworkaholic.blogspot.com/2010/03/asserting-ms-office-formats.html 5-6 - DébogageAfin de faciliter le débogage du script, on peut utiliser un « View Results Tree ». - 37 -Copyright © 2011 - Gomes Rodrigues. Aucune reproduction, même partielle, ne peut être faite de ce site et de lensemble de son contenu : textes,documents, images, etc sans lautorisation expresse de lauteur. Sinon vous encourez selon la loi jusquà 3 ans de prison et jusquà 300 000 Ede dommages et intérêts. http://arodrigues.developpez.com/tutoriels/java/performance/developper-plan-test-avec-jmeter/
  38. 38. Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com)Pour cela, clic droit sur Workbench et Add -> Listener -> View Results TreeCe qui nous permettra davoir dans longlet « Sampler Result » et « Response data », la réponse du serveur. - 38 -Copyright © 2011 - Gomes Rodrigues. Aucune reproduction, même partielle, ne peut être faite de ce site et de lensemble de son contenu : textes,documents, images, etc sans lautorisation expresse de lauteur. Sinon vous encourez selon la loi jusquà 3 ans de prison et jusquà 300 000 Ede dommages et intérêts. http://arodrigues.developpez.com/tutoriels/java/performance/developper-plan-test-avec-jmeter/
  39. 39. Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com) - 39 -Copyright © 2011 - Gomes Rodrigues. Aucune reproduction, même partielle, ne peut être faite de ce site et de lensemble de son contenu : textes,documents, images, etc sans lautorisation expresse de lauteur. Sinon vous encourez selon la loi jusquà 3 ans de prison et jusquà 300 000 Ede dommages et intérêts. http://arodrigues.developpez.com/tutoriels/java/performance/developper-plan-test-avec-jmeter/
  40. 40. Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com) 6 - Création du plan de testMaintenant que nous avons un scénario de prêt, nous pouvons créer un plan de test.Pour cela il faut ajouter dans « Test Plan », un « Thread Group ».Clic droit sur Test Plan -> Add -> Thread Group - 40 -Copyright © 2011 - Gomes Rodrigues. Aucune reproduction, même partielle, ne peut être faite de ce site et de lensemble de son contenu : textes,documents, images, etc sans lautorisation expresse de lauteur. Sinon vous encourez selon la loi jusquà 3 ans de prison et jusquà 300 000 Ede dommages et intérêts. http://arodrigues.developpez.com/tutoriels/java/performance/developper-plan-test-avec-jmeter/
  41. 41. Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com)Puis il faut configurer le nombre dutilisateurs et ditérations et la durée du ramp up.Faire de même avec les autres scénarios qui font partie du plan de test. 7 - Exécution du testMaintenant que nous avons un plan de test de prêt, on peut lancer les tests. 7-1 - BaselineDans un premier temps il faut exécuter le test avec un seul utilisateur afin de :• tester que lapplication na pas de problèmes de performance avec seulement un utilisateur car dans ce cas, lancer la campagne de test ne sert à rien ;• créer un baseline qui nous permettra davoir des KPI de référence. 7-2 - Désactivation de lIHMPour des gros tests il faut faire attention à :• désactiver les listeners coûteux et ne garder que Summary Listener, Graph Listener, et Spline Listener ;• limiter le nombre de listeners ;• désactiver le mode graphique avec loption non-gui ;• générer un fichier CSV .jtl ou XML.Plus dinformations sur http://blog.milamberspace.net/index.php/2009/02/01/jmeter-pourquoi-executer-son-test-de-charges-en-mode-non-gui-sans-interface-graphique-192.html et http://blog.milamberspace.net/index.php/2009/11/15/envoyer-en-ligne-de-commande-des-parametres-a-votre-scenario-jmeter-534.html ethttp://blog.milamberspace.net/index.php/jmeter-pages/jmeter-test-de-charges-a-distance-distributed-testing.Pour suivre ce qui se passe lorsquon est en mode non-gui.http://blog.milamberspace.net/index.php/2009/02/01/jmeter-suivre-un-tir-de-charge-en-mode-non-gui-avec-le-resume-statistique-200.html - 41 -Copyright © 2011 - Gomes Rodrigues. Aucune reproduction, même partielle, ne peut être faite de ce site et de lensemble de son contenu : textes,documents, images, etc sans lautorisation expresse de lauteur. Sinon vous encourez selon la loi jusquà 3 ans de prison et jusquà 300 000 Ede dommages et intérêts. http://arodrigues.developpez.com/tutoriels/java/performance/developper-plan-test-avec-jmeter/
  42. 42. Développer un plan de test avec JMeter par Gomes Rodrigues (arodrigues.developpez.com) 7-3 - Test de charge distribuéSi un seul injecteur ne suffit pas, faire un test de charge distribué (remote testing) sur plusieurs injecteurs afin derépartir la charge de test.Plus dinformation sur http://jakarta.apache.org/jmeter/usermanual/remote-test.html 8 - Lire les résultatsComme vous pouvez le constater, la partie reporting de JMeter nest pas ce qui se fait de mieux.La méthode la plus simple est de sauvegarder les résultats en CSV afin de les traiter avec un autre outil (Excel, outilsde statistiques, outils BI...).Par exemple avec OpenOffice.org, Access. 9 - ConclusionComme on a pu le voir, JMeter permet dappliquer les conseils donnés dans mon précédent article. Maintenantque nous connaissons la théorie et la pratique avec JMeter, nous verrons dans un prochain article un cas concretdutilisation de JMeter. 10 - RemerciementsMerci à Milamber pour sa relecture et son aide.Merci à ClaudeLELOUP pour sa correction orthographique. 11 - Référenceshttp://groups.google.com/group/jmeter-fr/topics?hl=frhttp://blog.milamberspace.net/ - 42 -Copyright © 2011 - Gomes Rodrigues. Aucune reproduction, même partielle, ne peut être faite de ce site et de lensemble de son contenu : textes,documents, images, etc sans lautorisation expresse de lauteur. Sinon vous encourez selon la loi jusquà 3 ans de prison et jusquà 300 000 Ede dommages et intérêts. http://arodrigues.developpez.com/tutoriels/java/performance/developper-plan-test-avec-jmeter/

×