Brooks Elliott
Mesurer la
performance des
applications
avec JMeter
Géraud Dugé de Bernonville
Claude Falguière
Mars 2010
B...
Cours du soir JMeter - Valtech 2
Copyright notice
● Vous êtes libre de :
● Reproduire, distribuer et communiquer cette cré...
Cours du soir JMeter - Valtech 3
Contact information
Vous pouvez modifier cette
présentation mais vous devez
citer les sou...
JMeter
Restituer
Spécifier
Cours du soir JMeter - Valtech 5
Les objectifs possibles
Comparer des
solutions
(Benchmark)
Cours du soir JMeter - Valtech 6
que vont faire les utilisateurs en
production ?
quelles sont les volumétries,
les dimensi...
Cours du soir JMeter - Valtech 7
Les facteurs de risque
Criticité
En cas de non-fonctionnement, l’entreprise
peut être mis...
Cours du soir JMeter - Valtech 8
Comment ça se passe ?
Application à
tester
Charge
 Usage de l’application
 Plate-forme ...
Cours du soir JMeter - Valtech 9
Définir ce que vont faire les utilisateurs
500 utilisateurs, certes, mais ...
Simuler bea...
Cours du soir JMeter - Valtech 10
Un exemple de banc de test
Application à
testerLogiciel de test de
charge (JMeter)
Repré...
Cours du soir JMeter - Valtech 11
Les contraintes et les difficultés
Chaque tir dure plusieurs heures pour monter en
charg...
Cours du soir JMeter - Valtech 12
Les 3 checklists des tests de charge (1)
Après
✔
Collecte des résultats et données de
mo...
Cours du soir JMeter - Valtech 13
Les 3 checklists des tests de charge (2)
Après
✔
Collecte des résultats et données de
mo...
Cours du soir JMeter - Valtech 14
Les 3 checklists des tests de charge (3)
Pendant
✔
Vérification du déroulement des tests...
Cours du soir JMeter - Valtech 15
Elaborer une stratégie
Elaborer un plan de test
réaliste par rapport au budget
et aux dé...
JMeter
Restituer
✔ Spécifier
Cours du soir JMeter - Valtech 17
JMeter
Projet Apache Jakarta
http://jakarta.apache.org/jmeter/Open Source
100% Java
Outi...
Cours du soir JMeter - Valtech 18
Premier aperçu de JMeter
Cours du soir JMeter - Valtech 19
L'enregistrement des scripts HTTP
Cours du soir JMeter - Valtech 20
L'organisation du plan de travail
Eléments exécutés lorsque l'on lance le plan de test
A...
Cours du soir JMeter - Valtech 21
Les concepts
Logic Controller
Configuration
Pre-Processor
Timers Temps d'attente
Sampler...
Cours du soir JMeter - Valtech 22
Comment simuler la réalité ?
On ne peut pas
jouer la réalité
dans toute sa
complexité
On...
Cours du soir JMeter - Valtech 23
Comment faire un test juste ?
Et de ne plus
le faire !
Le résultat du test dépend totale...
Cours du soir JMeter - Valtech 24
Atelier scénario
Groupe 1
Mauvaise foi
positive
Groupe 2
Mauvaise foi
négative
Définisse...
Cours du soir JMeter - Valtech 25
Les biais affectant les scénarios
Ambivalent
Groupe 1
Mauvaise foi
positive
Groupe 2
Mau...
Cours du soir JMeter - Valtech 26
Réalisation du scénario JMeter
Enregistrement du scénario
Finalisation du script
Tir de ...
Cours du soir JMeter - Valtech 27
Comment lire le résultat ?
Jmeter produit un log en XML
Rechargement du log .jtl dans JM...
Restituer
✔ Spécifier
✔ JMeter
Cours du soir JMeter - Valtech 29
Exploiter les résultats
Analyser et ValiderAnalyser et Valider
ComprendreComprendre
Synt...
Cours du soir JMeter - Valtech 30
Les biais d'agrégation
Peut masquer des temps de réponse très long
La moyenne
Préférer l...
Cours du soir JMeter - Valtech 31
La répartition des données
Histogram of ts
Duration
Frequency
2 3 4 5 6
05101520
Cumulat...
Cours du soir JMeter - Valtech 32
Les biais de représentation : l'origine
Quel test à les temps de réponse les plus élevés...
Cours du soir JMeter - Valtech 33
Les biais de représentation : le lissage
Time
Duration
0 20 40 60 80 100
0123456
Time
Du...
Cours du soir JMeter - Valtech 34
Les biais de représentation : la couleur
OK
KO
K0
OK
Quel test a le plus faible taux d'e...
Cours du soir JMeter - Valtech 35
C'est fini
“Les statistiques sont la forme
la plus élaborée du mensonge”.
Winston Church...
Cours du soir JMeter - Valtech 36
Bibliographie et crédits
Crédits photos et cliparts
Brooks Elliott http://www.flickr.com...
Prochain SlideShare
Chargement dans…5
×

Mesurer Les Performances Avec JMeter Cours Du Soir Valtech 25 Mars 2010

6 542 vues

Publié le

Comprendre les pièges qui influent sur la pertinence et la communication des résultats des tests de performance et présentation de JMeter

Publié dans : Technologie
0 commentaire
5 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
6 542
Sur SlideShare
0
Issues des intégrations
0
Intégrations
80
Actions
Partages
0
Téléchargements
301
Commentaires
0
J’aime
5
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Mesurer Les Performances Avec JMeter Cours Du Soir Valtech 25 Mars 2010

  1. 1. Brooks Elliott Mesurer la performance des applications avec JMeter Géraud Dugé de Bernonville Claude Falguière Mars 2010 Brooks Elliott
  2. 2. Cours du soir JMeter - Valtech 2 Copyright notice ● Vous êtes libre de : ● Reproduire, distribuer et communiquer cette création au public ● Modifier cette création ● Selon les conditions suivantes : ● Paternité. Vous devez citer le nom de l'auteur original de la manière indiquée par l'auteur de l'oeuvre ou le titulaire des droits qui vous confère cette autorisation (mais pas d'une manière qui suggérerait qu'ils vous soutiennent ou approuvent votre utilisation de l'oeuvre). ● Rien dans ce contrat ne diminue ou ne restreint le droit moral de l'auteur ou des auteurs. http://creativecommons.org/licenses/by/3.0/
  3. 3. Cours du soir JMeter - Valtech 3 Contact information Vous pouvez modifier cette présentation mais vous devez citer les sources (auteur et traducteur) quelque part dans votre présentation. Par exemple incorporez cette diapositive au début pour dire que votre présentation provient de ces sources. Merci de faire pour le mieux. Présentation de Géraud Dugé de Bernonville & Claude Falguière geraud.dugedebernonville@valtech.fr claude.falguiere@valtech.fr http://fr.linkedin.com/in/claudefalguiere http:www.valtech.fr Présentation de Géraud Dugé de Bernonville & Claude Falguière geraud.dugedebernonville@valtech.fr claude.falguiere@valtech.fr http://fr.linkedin.com/in/claudefalguiere http:www.valtech.fr
  4. 4. JMeter Restituer Spécifier
  5. 5. Cours du soir JMeter - Valtech 5 Les objectifs possibles Comparer des solutions (Benchmark)
  6. 6. Cours du soir JMeter - Valtech 6 que vont faire les utilisateurs en production ? quelles sont les volumétries, les dimensionnements ? quels sont les risques à vérifier, les critères à mesurer ? des conditions de production des utilisateurs des attentes Simuler des utilisateurs en condition de production dans le but de vérifier que l'application correspond aux attentes Les tests en charge
  7. 7. Cours du soir JMeter - Valtech 7 Les facteurs de risque Criticité En cas de non-fonctionnement, l’entreprise peut être mise en danger et une solution dégradée doit être possible Ergonomie L’application est nouvelle pour les utilisateurs ou complexe à utiliser Technique Technologie nouvelle ou connue comme étant problématique Fonctionnel L’application met en œuvre des traitements lourds ou longs, les volumes sont importants Cible Le nombre d’utilisateurs est élevé, les utilisateurs cible sont peu patients Quels sont les facteurs de risque pour les performance ? Quels sont les facteurs aggravant ?
  8. 8. Cours du soir JMeter - Valtech 8 Comment ça se passe ? Application à tester Charge  Usage de l’application  Plate-forme utilisées  Types de test à faire  Joue les scripts en charge  Collecte les temps de réponse  Fournit un rapport  Analyse des résultats Spécifications Scripts Logiciel de test en charge (JMeter)
  9. 9. Cours du soir JMeter - Valtech 9 Définir ce que vont faire les utilisateurs 500 utilisateurs, certes, mais ... Simuler beaucoup d’actions représente beaucoup d’efforts. MAIS Limiter la couverture peut laisser de côté une action qui dégraderait les performances de l’ensemble. Trop d’utilisateurs sur une fonction rarement utilisée ne donne pas une vue réaliste. Utiliser une popup de recherche ou taper le code directement n’est pas équivalent. Représentativité Quelles actions de l'utilisateur seront reproduites ? Combien d'utilisateurs font chaque action ? Comment font ils ces actions ?
  10. 10. Cours du soir JMeter - Valtech 10 Un exemple de banc de test Application à testerLogiciel de test de charge (JMeter) Représentativité du banc de test Avoir un environnement le plus proche possible de la production Au minimum être conscient des écarts que l’on aura forcément avec la production
  11. 11. Cours du soir JMeter - Valtech 11 Les contraintes et les difficultés Chaque tir dure plusieurs heures pour monter en charge et obtenir des moyennes significatives Demande une plate-forme dédiée souvent construite pour les tests → retards fréquents Demande des développements spécifiques (scripts d’injection, jeu de données en masse) Cette activité est toujours sur le chemin critique Cette activité est implique des équipes qui ne travaillent pas souvent ensemble Un tir de test de charge ne peut pas se faire partiellement
  12. 12. Cours du soir JMeter - Valtech 12 Les 3 checklists des tests de charge (1) Après ✔ Collecte des résultats et données de monitoring ✔ Vérification du nombre de requêtes effectuées ✔ Bon fonctionnement de l'application ✔ Tracer les résultats ou problèmes rencontrés Pendant ✔ Vérification du déroulement des tests ✔ ✔ Bon fonctionnement de l'application ✔ ✔ Monitorer les injecteurs ✔ Avant ✔ Disponibilité exclusive de l'environnement ✔ Outils de monitoring prêts ✔ Scripts JMeter installés ✔ Injecteurs démarrés ✔ Scripts fonctionnels à partir des injecteurs ✔ Journal de test alimenté
  13. 13. Cours du soir JMeter - Valtech 13 Les 3 checklists des tests de charge (2) Après ✔ Collecte des résultats et données de monitoring ✔ Vérification du nombre de requêtes effectuées ✔ Bon fonctionnement de l'application ✔ Tracer les résultats ou problèmes rencontrés Avant Disponibilité exclusive de l'environnement Outils de monitoring prêts Scripts JMeter installés Injecteurs démarrés Scripts fonctionnels à partir des injecteurs Journal de test alimenté Pendant ✔ Vérification du déroulement des tests ✔ Bon fonctionnement de l'application en utilisation réelle ✔ Monitorer les injecteurs
  14. 14. Cours du soir JMeter - Valtech 14 Les 3 checklists des tests de charge (3) Pendant ✔ Vérification du déroulement des tests ✔ ✔ Bon fonctionnement de l'application ✔ ✔ Monitorer les injecteurs ✔ Avant Disponibilité exclusive de l'environnement Outils de monitoring prêts Scripts JMeter installés Injecteurs démarrés Scripts fonctionnels à partir des injecteurs Journal de test alimenté Après ✔ Collecte des résultats et données de monitoring ✔ Vérification du nombre de requêtes effectuées ✔ Bon fonctionnement de l'application après la fin du test ✔ Tracer les résultats ou problèmes rencontrés dans le journal de test
  15. 15. Cours du soir JMeter - Valtech 15 Elaborer une stratégie Elaborer un plan de test réaliste par rapport au budget et aux délais Se concentrer sur les risques probables et qui ont un impact Le développement des scripts Le délai avant la mise en production La mise en place d’une plate-forme dédiée La réalisation des tests Les coûts de correction augmentent avec le temps et le volume de code Eviter des pertes de revenu ou des dégradations d’image Eviter l’affectation de ressources imprévues dans l’urgence L’analyse des résultats Coût Gain
  16. 16. JMeter Restituer ✔ Spécifier
  17. 17. Cours du soir JMeter - Valtech 17 JMeter Projet Apache Jakarta http://jakarta.apache.org/jmeter/Open Source 100% Java Outils d'enregistrement de scénario Web Injecteur et collecte des résultats Visualisation des résultats IHM Scripts en XML Fonctions Extensible MultiProtocole Web - HTTP, HTTPS SOAP Database via JDBC LDAP JMS Mail - POP3(S) and IMAP(S) Tout code Java ou JUnit Paramétrage et jeu de données Gestion du cache Web et des cookies
  18. 18. Cours du soir JMeter - Valtech 18 Premier aperçu de JMeter
  19. 19. Cours du soir JMeter - Valtech 19 L'enregistrement des scripts HTTP
  20. 20. Cours du soir JMeter - Valtech 20 L'organisation du plan de travail Eléments exécutés lorsque l'on lance le plan de test Attention c'est la seule partie qui est sauvée par Save Zone de dépôt des éléments utilisés temporairement (le proxy HTTP d'enregistrement par exemple) Test Plan Workbench Thread Group Nombre d'utilisateurs et d'itérations, ramp up
  21. 21. Cours du soir JMeter - Valtech 21 Les concepts Logic Controller Configuration Pre-Processor Timers Temps d'attente Sampler Emission des requêtes Post Processor Extraire des données du résultat Assertions Vérifier le résultat Listeners Visualise le résultat
  22. 22. Cours du soir JMeter - Valtech 22 Comment simuler la réalité ? On ne peut pas jouer la réalité dans toute sa complexité On construit une expérience de laboratoire qui simule certains aspects de cette réalité On construit une expérience de laboratoire qui simule certains aspects de cette réalitéRéalité Evaluation des risques Point à évaluer Expérience Evaluation des résultats Restitution
  23. 23. Cours du soir JMeter - Valtech 23 Comment faire un test juste ? Et de ne plus le faire ! Le résultat du test dépend totalement des scénarios définis et de leur implémentation Le meilleur moyen de ne pas biaiser inconsciemment est d'apprendre comment biaiser volontairement ... BiaisBiais
  24. 24. Cours du soir JMeter - Valtech 24 Atelier scénario Groupe 1 Mauvaise foi positive Groupe 2 Mauvaise foi négative Définissez des scénarios de test qui rendront le résultat meilleur Définissez des scénarios de test qui rendront le résultat pire
  25. 25. Cours du soir JMeter - Valtech 25 Les biais affectant les scénarios Ambivalent Groupe 1 Mauvaise foi positive Groupe 2 Mauvaise foi négative Utiliser toujours les mêmes valeurs en cache Volumes trop faibles Déloguer les utilisateurs Utiliser des raccourcis d'IHM que les utilisateurs ne connaissent pas Utiliser des mots clés exacts Ne pas vérifier les réponses Utiliser des mots clés trop génériques (*) Oublier les attentes entre les actions Monter en charge trop vite Définir un scénario utilisateur trop court V olumes surévalués Ignorer les limitations de ressources externes (injecteurs, réseau) Jouer un test trop court
  26. 26. Cours du soir JMeter - Valtech 26 Réalisation du scénario JMeter Enregistrement du scénario Finalisation du script Tir de rodage Application PetClinic de Spring : ●Serveur Tomcat ●Base de données Hsqldb sur filesystem Exemple de scénario simple : recherche d'un propriétaire
  27. 27. Cours du soir JMeter - Valtech 27 Comment lire le résultat ? Jmeter produit un log en XML Rechargement du log .jtl dans JMeter Ajout des listeners qui permettent de calculer les stats et grapher Les listeners sont assez rudimentaires et il faut souvent compléter avec Excel ou du script
  28. 28. Restituer ✔ Spécifier ✔ JMeter
  29. 29. Cours du soir JMeter - Valtech 29 Exploiter les résultats Analyser et ValiderAnalyser et Valider ComprendreComprendre SynthétiserSynthétiser RestituerRestituer Des milliers de relevés Quelques chiffres et graphes Biais d'interprétation Biais de perception La simplification est inévitable. Il faut s'assurer qu'elle ne dénature pas
  30. 30. Cours du soir JMeter - Valtech 30 Les biais d'agrégation Peut masquer des temps de réponse très long La moyenne Préférer les quantiles Ignorer les erreurs Les erreurs sont parfois reportées avec un temps égal à 0 La moyenne est 3 Le temps le plus élevé est 25 95% des relevés sont au dessous de 13 Les relevés de temps de réponse ont souvent des traines 3 13 25
  31. 31. Cours du soir JMeter - Valtech 31 La répartition des données Histogram of ts Duration Frequency 2 3 4 5 6 05101520 Cumulative histogram of ts DurationFrequency 2 3 4 5 6 020406080100 > summary(data) Min. 1st Qu. Median Mean 3rd Qu. Max. 1.779 3.203 3.834 3.840 4.483 5.966 > quantile(data,0.95) 95% 5.408672 > data <- rnorm(100,2)+2 100 valeurs Loi normale centrée sur 2 + 2
  32. 32. Cours du soir JMeter - Valtech 32 Les biais de représentation : l'origine Quel test à les temps de réponse les plus élevés ? Time Duration 0 20 40 60 80 100 0123456 Time Duration 0 20 40 60 80 100 23456
  33. 33. Cours du soir JMeter - Valtech 33 Les biais de représentation : le lissage Time Duration 0 20 40 60 80 100 0123456 Time Duration 0 20 40 60 80 100 0123456 Quel serveur a le comportement le plus stable ?
  34. 34. Cours du soir JMeter - Valtech 34 Les biais de représentation : la couleur OK KO K0 OK Quel test a le plus faible taux d'erreur ?
  35. 35. Cours du soir JMeter - Valtech 35 C'est fini “Les statistiques sont la forme la plus élaborée du mensonge”. Winston Churchill … mais c'est aussi un formidable outil Restez attentifs !
  36. 36. Cours du soir JMeter - Valtech 36 Bibliographie et crédits Crédits photos et cliparts Brooks Elliott http://www.flickr.com/photos/8011986@N02/ Mohamed Ibrahim, http://www.clker.com/profile-9.html Francesco Marino http://www.freedigitalphotos.net/images/view_photog.php?photogid=809 Martineric http://www.flickr.com/photos/36665622@N00/ Sarflondondunc http://www.flickr.com/photos/sarflondondunc/ Krispeac http://www.flickr.com/photos/krispeac/ Bibliographie JMeter : http://jakarta.apache.org/jmeter/ JMeter HTTP Recording : http://jakarta.apache.org/jmeter/usermanual/jmeter_proxy_step_by_step.pdf

×