mesurer les performances avec jmeter cours du soir valtech 25 mars 2010

36
Brooks Elliott Mesurer la performance des applications avec JMeter Géraud Dugé de Bernonville Claude Falguière Mars 2010 Brooks Elliott

Upload: claude-falguiere

Post on 27-May-2015

5.486 views

Category:

Technology


3 download

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

TRANSCRIPT

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

Brooks Elliott

Mesurer la performance des

applications avec JMeter

Géraud Dugé de BernonvilleClaude Falguière

Mars 2010Brooks Elliott

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

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/

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

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

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

JMeterRestituer

Spécifier

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

Cours du soir JMeter - Valtech 5

Les objectifs possibles

Comparer des solutions

(Benchmark)

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

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

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

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 ?

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

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)

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

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 ?

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

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

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

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

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

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é

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

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

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

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

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

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

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

JMeterRestituer

✔ Spécifier

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

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

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

Cours du soir JMeter - Valtech 18

Premier aperçu de JMeter

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

Cours du soir JMeter - Valtech 19

L'enregistrement des scripts HTTP

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Restituer

✔ Spécifier✔ JMeter

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

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

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

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

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

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

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

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

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

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 ?

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

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 ?

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

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 !

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

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