Upload
claude-falguiere
View
5.486
Download
3
Embed Size (px)
DESCRIPTION
Comprendre les pièges qui influent sur la pertinence et la communication des résultats des tests de performance et présentation de JMeter
Citation preview
Brooks Elliott
Mesurer la performance des
applications avec JMeter
Géraud Dugé de BernonvilleClaude Falguière
Mars 2010Brooks Elliott
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/
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
[email protected] [email protected]
http://fr.linkedin.com/in/claudefalguierehttp:www.valtech.fr
Présentation de
Géraud Dugé de Bernonville &
Claude Falguière
[email protected] [email protected]
http://fr.linkedin.com/in/claudefalguierehttp:www.valtech.fr
JMeterRestituer
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 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
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 ?
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)
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 ?
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
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
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é
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ésAvant
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
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
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
JMeterRestituer
✔ Spécifier
Cours du soir JMeter - Valtech 17
JMeterProjet Apache Jakarta
http://jakarta.apache.org/jmeter/Open Source100% 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, HTTPSSOAP
Database via JDBCLDAPJMS
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
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 testAttention 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
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
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
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
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
Cours du soir JMeter - Valtech 25
Les biais affectant les scénarios
Ambivalent
Groupe 1
Mauvaise foi positive
Groupe 2
Mauvaise foi négativeUtiliser 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
Cours du soir JMeter - Valtech 26
Réalisation du scénario JMeter
Enregistrement du scénarioFinalisation du scriptTir 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
Cours du soir JMeter - Valtech 27
Comment lire le résultat ?
Jmeter produit un log en XMLRechargement 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
Restituer
✔ Spécifier✔ JMeter
Cours du soir JMeter - Valtech 29
Exploiter les résultats
Analyser et ValiderAnalyser et Valider
Comprendre Comprendre
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
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
Cours du soir JMeter - Valtech 31
La répartition des données
Histogram of ts
Duration
Freq
uenc
y
2 3 4 5 6
05
1015
20
Cumulative histogram of ts
DurationFr
eque
ncy
2 3 4 5 6
020
4060
8010
0
> 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
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
Dur
atio
n
0 20 40 60 80 100
01
23
45
6
Time
Dur
atio
n
0 20 40 60 80 100
23
45
6
Cours du soir JMeter - Valtech 33
Les biais de représentation : le lissage
Time
Dur
atio
n
0 20 40 60 80 100
01
23
45
6
Time
Dur
atio
n
0 20 40 60 80 100
01
23
45
6
Quel serveur a le comportement le plus stable ?
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 ?
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 outilRestez attentifs !
Cours du soir JMeter - Valtech 36
Bibliographie et crédits
Crédits photos et clipartsBrooks Elliott http://www.flickr.com/photos/8011986@N02/Mohamed Ibrahim, http://www.clker.com/profile-9.htmlFrancesco 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/
BibliographieJMeter : http://jakarta.apache.org/jmeter/
JMeter HTTP Recording :http://jakarta.apache.org/jmeter/usermanual/jmeter_proxy_step_by_step.pdf