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. 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
5. Cours du soir JMeter - Valtech 5
Les objectifs possibles
Comparer des
solutions
(Benchmark)
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. 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. 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. 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. 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. 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. 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. 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. 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. 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
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. Cours du soir JMeter - Valtech 18
Premier aperçu de JMeter
19. Cours du soir JMeter - Valtech 19
L'enregistrement des scripts HTTP
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. 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. 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. 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. 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. 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. 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. 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
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. 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. 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. 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. 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. 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. 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. 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