SlideShare une entreprise Scribd logo
1  sur  80
Télécharger pour lire hors ligne
Plan de notre intervention 
1. Pourquoi le test de charge ? 
2. Les différents types de tests de charge 
1.1. Le test de performance 
1.2. Le test aux limites 
3. Méthode 
2.1. Pré-requis 
2.2. Préparation des scénarios 
2.3. Lancement du test de charge 
2.4. Interprétation des résultats
Plan de notre intervention 
4. Réalisation d'un test en direct avec Jmeter 
4.1. Généralités 
4.2. L'interface Jmeter 
4.3. Les éléments 
4.4. Le proxy HTTP 
4.5. Les sources de données 
4.6. Visualisation des résultats 
4.7. Exemple de scénario complet 
5. Présentation de Syloé 
6. Suite des présentations Syloe des logiciels 
libres
1. Pourquoi le test de charge 
Syloé - 2014
Introduction (1/2) 
● Une application Web est un site hébergé sur 
des serveurs 
Syloé - 2014
Introduction (1/2) 
● Une application Web est un site hébergé sur 
des serveurs 
● Même si celui-ci fonctionne bien, des 
ralentissements peuvent apparaître : 
– Passage en haute saison dans des cas où la 
fréquentation varie au cours de l'année 
– Augmentation de l'audience suite à un spot 
publicitaire ou un envoi de mailing 
Syloé - 2014
Introduction (2/2) 
● Un test de charge consiste à solliciter le site 
Internet en lui appliquant un certain nombre de 
requêtes automatisées 
Syloé - 2014
Syloé - 2014
Introduction (2/2) 
● Un test de charge consiste à solliciter le site 
Internet en lui appliquant un certain nombre de 
requêtes automatisées 
● Il permet d'observer son comportement au-delà 
de l'audience normale 
Syloé - 2014
Les tests classiques 
● Tests unitaires 
Tester de manière intrinsèque le programme 
Syloé - 2014
Les tests classiques 
● Tests unitaires 
Tester de manière intrinsèque le programme 
● Tests de non-régression 
Eviter l'introduction de bugs lors de la 
correction d'autres bugs ou l'ajout de 
nouvelles fonctionnalités 
Syloé - 2014
Les tests classiques 
● Tests unitaires 
Tester de manière intrinsèque le programme 
● Tests de non-régression 
Eviter l'introduction de bugs lors de la 
correction d'autres bugs ou l'ajout de 
nouvelles fonctionnalités 
● Tests fonctionnels 
Valider que les fonctionnalités attendues 
marchent 
Syloé - 2014
Limites 
● Combien d'utilisateurs simultanés l'application 
peut tolérer ? 
Syloé - 2014
Limites 
● Combien d'utilisateurs simultanés l'application 
peut tolérer ? 
● Comment vont évoluer les temps de réponse 
avec l'augmentation de l'audience ? 
Syloé - 2014
Limites 
● Combien d'utilisateurs simultanés l'application 
peut tolérer ? 
● Comment vont évoluer les temps de réponse 
avec l'augmentation de l'audience ? 
● Quel est le composant de l'application qui sera 
le facteur limitant à la montée en charge ? 
Syloé - 2014
Limites 
● Combien d'utilisateurs simultanés l'application 
peut tolérer ? 
● Comment vont évoluer les temps de réponse 
avec l'augmentation de l'audience ? 
● Quel est le composant de l'application qui sera 
le facteur limitant à la montée en charge ? 
● Comment vont réagir les composants à de 
nombreux accès concurrents ? 
Syloé - 2014
Préconisations 
● Les tests de charge doivent être intégrés dans 
le processus de développement 
Syloé - 2014
Préconisations 
● Les tests de charge doivent être intégrés dans 
le processus de développement 
● Ils sont à prévoir avant tout déploiement en 
production d'une nouvelle application 
Syloé - 2014
Préconisations 
● Les tests de charge doivent être intégrés dans 
le processus de développement 
● Ils sont à prévoir avant tout déploiement en 
production d'une nouvelle application 
● Chaque nouvelle version de l'application 
devrait également être testée 
Syloé - 2014
2. Les différents types 
de tests de charge 
Syloé - 2014
Le test de performance (1/2) 
● On définit le nombre maximal d'utilisateurs 
virtuels en fonction de l'audience réelle 
attendue 
Syloé - 2014
Le test de performance (1/2) 
● On définit le nombre maximal d'utilisateurs 
virtuels en fonction de l'audience réelle 
attendue 
● On peut faire varier le nombre d'utilisateurs 
par paliers 
Syloé - 2014
Le test de performance (1/2) 
● On définit le nombre maximal d'utilisateurs 
virtuels en fonction de l'audience réelle 
attendue 
● On peut faire varier le nombre d'utilisateurs 
par paliers 
● La durée de chaque palier peut se prolonger 
afin de valider le fonctionnement dans le 
temps 
Syloé - 2014
Le test de performance (2/2) 
● Met en évidence des points sensibles et 
critiques de l'architecture technique 
Syloé - 2014
Le test de performance (2/2) 
● Met en évidence des points sensibles et 
critiques de l'architecture technique 
● Permet la prise de métriques de l'application 
en fonctionnement (temps de réponse, charge 
système, requêtes en base de données, etc.) 
Syloé - 2014
Le test aux limites (1/2) 
● On définit un nombre d'utilisateurs virtuels 
sans cesse croissant 
Syloé - 2014
Le test aux limites (1/2) 
● On définit un nombre d'utilisateurs virtuels 
sans cesse croissant 
● On teste l'application avec une activité bien 
supérieure à l'activité normale 
Syloé - 2014
Le test aux limites (1/2) 
● On définit un nombre d'utilisateurs virtuels 
sans cesse croissant 
● On teste l'application avec une activité bien 
supérieure à l'activité normale 
● On multiplie les accès concurrents aux mêmes 
processus métiers 
Syloé - 2014
Le test aux limites (2/2) 
● Tester les réactions du système aux limites du 
modèle d'usage de l'application 
Syloé - 2014
Le test aux limites (2/2) 
● Tester les réactions du système aux limites du 
modèle d'usage de l'application 
● Déterminer la capacité maximale de 
l'ensemble dans une optique prévisionnelle 
Syloé - 2014
Le test aux limites (2/2) 
● Tester les réactions du système aux limites du 
modèle d'usage de l'application 
● Déterminer la capacité maximale de 
l'ensemble dans une optique prévisionnelle 
● Mettre en évidence la limite de crash de 
l'application ou du système 
Syloé - 2014
3. Méthode de mise en place 
Syloé - 2014
Pré-requis 
● Avoir à disposition un système de supervision 
déployé sur la plate-forme 
Syloé - 2014
Pré-requis 
● Avoir à disposition un système de supervision 
déployé sur la plate-forme 
● Connaître le type d'architecture et le nombre 
de serveurs 
Syloé - 2014
Pré-requis 
● Avoir à disposition un système de supervision 
déployé sur la plate-forme 
● Connaître le type d'architecture et le nombre 
de serveurs 
● Connaître les mécanismes de cache en place 
Syloé - 2014
Pré-requis 
● Avoir à disposition un système de supervision 
déployé sur la plate-forme 
● Connaître le type d'architecture et le nombre 
de serveurs 
● Connaître les mécanismes de cache en place 
● Bouchonner les appels aux services externes 
pour tester uniquement le service désiré 
Syloé - 2014
Préparation des scénarios 
● Définir un ou plusieurs déroulements d'actions 
typiques d'un utilisateur réel 
Syloé - 2014
Préparation des scénarios 
● Définir un ou plusieurs déroulements d'actions 
typiques d'un utilisateur réel 
● Identifier les requêtes au service que chaque 
action est censée faire 
Syloé - 2014
Préparation des scénarios 
● Définir un ou plusieurs déroulements d'actions 
typiques d'un utilisateur réel 
● Identifier les requêtes au service que chaque 
action est censée faire 
● Définir des pauses qui correspondent aux 
temps de réaction de l'utilisateur réel 
Syloé - 2014
Préparation des scénarios 
● Définir un ou plusieurs déroulements d'actions 
typiques d'un utilisateur réel 
● Identifier les requêtes au service que chaque 
action est censée faire 
● Définir des pauses qui correspondent aux 
temps de réaction de l'utilisateur réel 
● Créer des comptes sur l'application pour 
chaque utilisateur virtuel 
Syloé - 2014
Lancement du test de charge 
● Partir d'une base de données prédéfinie qui 
pourra être réinitialisée avant chaque test 
Syloé - 2014
Lancement du test de charge 
● Partir d'une base de données prédéfinie qui 
pourra être réinitialisée avant chaque test 
● Lancer un pré-test sur une durée courte pour 
valider qu'il n'y a pas de dysfonctionnement 
apparent 
Syloé - 2014
Lancement du test de charge 
● Partir d'une base de données prédéfinie qui 
pourra être réinitialisée avant chaque test 
● Lancer un pré-test sur une durée courte pour 
valider qu'il n'y a pas de dysfonctionnement 
apparent 
● Lancer le test de charge 
Syloé - 2014
Interprétation des résultats (1/3) 
● Séparer les requêtes statiques (images, css, 
etc.) des requêtes de contenu 
Syloé - 2014
Interprétation des résultats (1/3) 
● Séparer les requêtes statiques (images, css, 
etc.) des requêtes de contenu 
● Pour chaque type de requête, combiner sous 
forme de graphes : 
- le nombre de requêtes simultanées 
- les temps de réponse 
- les codes retours des requêtes (succès ou 
erreur) 
Syloé - 2014
Interprétation des résultats (2/3) 
● Mettre en corrélation ces graphes avec les 
graphes systèmes récoltés par la supervision 
Syloé - 2014
Interprétation des résultats (2/3) 
● Mettre en corrélation ces graphes avec les 
graphes systèmes récoltés par la supervision 
● Mettre en évidence les points limites de 
l'application 
Syloé - 2014
Interprétation des résultats (2/3) 
● Mettre en corrélation ces graphes avec les 
graphes systèmes récoltés par la supervision 
● Mettre en évidence les points limites de 
l'application 
● En expliquer les raisons à l'aide des 
informations remontées par la supervision 
Syloé - 2014
Interprétation des résultats (3/3) 
● Auditer et préconiser des optimisations : 
– Applicatives (code, base de données) 
– Systèmes (configurations, tuning) 
– Architecture (scalabilité) 
Syloé - 2014
4. Jmeter 
Syloé - 2014
Généralités 
● Outil fourni par la Fondation Apache sous 
licence Apache 
Syloé - 2014
Généralités 
● Outil fourni par la Fondation Apache sous 
licence Apache 
Syloé - 2014 
● Ecrit en Java
Généralités 
● Outil fourni par la Fondation Apache sous 
licence Apache 
Syloé - 2014 
● Ecrit en Java 
● Fonctionne en mode standalone ou 
client/serveur
Généralités 
● Outil fourni par la Fondation Apache sous 
licence Apache 
Syloé - 2014 
● Ecrit en Java 
● Fonctionne en mode standalone ou 
client/serveur 
● Permet de tester de nombreux types de 
serveurs : web, bases de données, LDAP, 
mail, etc.
L'interface Jmeter (1/2) 
Syloé - 2014
L'interface Jmeter (2/2) 
● Le plan de test peut être divisé en groupes 
d'unités et contient les éléments des scénarios 
Syloé - 2014
L'interface Jmeter (2/2) 
● Le plan de test peut être divisé en groupes 
d'unités et contient les éléments des scénarios 
● Le plan de travail contient tous les éléments 
hors scénario (configuration du proxy, 
tableaux de résultats, etc.) 
Syloé - 2014
L'interface Jmeter (2/2) 
● Le plan de test peut être divisé en groupes 
d'unités et contient les éléments des scénarios 
● Le plan de travail contient tous les éléments 
hors scénario (configuration du proxy, 
tableaux de résultats, etc.) 
● Le test de charge se lance en cliquant sur 
l'icône 
Syloé - 2014
Les éléments (1/2) 
● Les échantillons sont les requêtes qui seront 
envoyées au serveur 
Syloé - 2014
Les éléments (1/2) 
● Les échantillons sont les requêtes qui seront 
envoyées au serveur 
● Les contrôleurs permettent de structurer les 
échantillons (si, boucles, aléatoire) 
Syloé - 2014
Les éléments (1/2) 
● Les échantillons sont les requêtes qui seront 
envoyées au serveur 
● Les contrôleurs permettent de structurer les 
échantillons (si, boucles, aléatoire) 
● Les compteurs de temps sont utiles pour 
insérer des pauses dans le scénario 
Syloé - 2014
Les éléments (2/2) 
● Les pré- ou post-processeurs peuvent 
générer ou extraire des données d'un 
échantillon 
Syloé - 2014
Les éléments (2/2) 
● Les pré- ou post-processeurs peuvent 
générer ou extraire des données d'un 
échantillon 
● Les récepteurs offrent plusieurs moyens de 
présenter les résultats (graphiques, tableaux, 
arbres, etc.) 
Syloé - 2014
Le proxy HTTP (1/3) 
● Il permet de simplifier l'écriture des scénarios 
Syloé - 2014
Le proxy HTTP (1/3) 
● Il permet de simplifier l'écriture des scénarios 
● Proxy HTTP en écoute sur le port 8080 
Syloé - 2014
Le proxy HTTP (1/3) 
● Il permet de simplifier l'écriture des scénarios 
● Proxy HTTP en écoute sur le port 8080 
● Configuration du proxy dans le navigateur 
Syloé - 2014
Le proxy HTTP (1/3) 
● Il permet de simplifier l'écriture des scénarios 
● Proxy HTTP en écoute sur le port 8080 
● Configuration du proxy dans le navigateur 
● Déroulement du scénario souhaité à la main 
Syloé - 2014
Le proxy HTTP (1/3) 
● Il permet de simplifier l'écriture des scénarios 
● Proxy HTTP en écoute sur le port 8080 
● Configuration du proxy dans le navigateur 
● Déroulement du scénario souhaité à la main 
● Interception à la volée de toutes les requêtes : 
- URL 
- En-têtes HTTP 
- Paramètres POST et GET 
Syloé - 2014
Le proxy HTTP (2/3) 
Syloé - 2014
Le proxy HTTP (3/3) 
Syloé - 2014
Les sources de données 
● Pré-charger des variables à partir d'un fichier 
CSV ou d'une base de données 
Syloé - 2014
Les sources de données 
● Pré-charger des variables à partir d'un fichier 
CSV ou d'une base de données 
● Effectuer de manière itérative une requête 
pour chaque élément (ex : créer 10 comptes 
prédéfinis au sein de l'application) 
Syloé - 2014
Les sources de données 
● Pré-charger des variables à partir d'un fichier 
CSV ou d'une base de données 
● Effectuer de manière itérative une requête 
pour chaque élément (ex : créer 10 comptes 
prédéfinis au sein de l'application) 
● Tirer un élément aléatoirement et l'utiliser 
dans un scénario (ex : choisir un compte et lui 
faire exécuter des actions) 
Syloé - 2014
Visualisation des résultats 
Syloé - 2014
5. Présentation de Syloé 
Syloé - 2014
Syloé : Expertise Linux 
Syloé - 2014 
● Services : 
– Audit des SI de production 
– Audit de sécurité 
– Test de charge Applicatif 
– Supervision fine des applications Web critiques 
– Intégration d'outils systèmes sur mesures 
– Formation autours des technologies Linux et réseaux 
● Support en Crédit Tempsen mode pompier
Syloé : Expertise Linux 
● Hébergement et infogérance : 
– 2 Datacenters 
– Plateformes en Haute Disponiblité 
– Failover, Loadbalancing, Clustering 
– Cloud , SaaS, Virtualisation 
Syloé - 2014 
● Travail collaboratif 
– Zimbra, BlueMind, Open-Xchange..
Suite des présentations Syloe 
des logiciels libres 
Sujets Transverses: 
● Présentation : Bonnes pratiques d'installation et d'infogérance d'un serveur sur internet 
● Présentation : Concevoir et réussir un test de charge applicatif avec scénarios de navigation 
Syloé - 2014 
des applications Web; 
● Présentation : Autour de La supervision : Quoi superviser ? Quelle metrique, jusqu'a quel 
détails , quel processus organisationnel ? 
● Présentation des différentes composantes de la lutte Anti-Spam sous Linux; 
● Présentation de GIT GitLab ...; 
● Présentation des nouveautés de Jboss7 et Tomcat 7;
Suite des présentations Syloe 
des logiciels libres 
Sujets Techniques: 
● Présentation des différentes solutions de High Aviability de Mysqls ; 
● Présentation des alternatives à Mysql de Oracle; 
● Comment sécuriser un serveur Web , coté système ; 
● Présentation de deux solutions de messagerie opensource : Zimbra -Bluemind; 
● Présentation des solutions de Haute-Disponibilité sous Linux; 
● Présentation d'une solution à base de brique opensource d'automatisation (Industrialisation) 
Syloé - 2014 
des mises en production; 
● Présentation de Cfengine comme outils de centralisation des configurations; 
● Présentation : Que faire suite à un hack d'un serveur internet ? 
● Présentation : comment choisir une solution de virtualisation ?
Vos Questions ... 
Nous contacter : www.syloe.fr 
Support Linux professionnel http://www.services-linux.fr 
contact@syloe.info 
Syloé - 2014

Contenu connexe

Tendances

La spécification des besoins
La spécification des besoinsLa spécification des besoins
La spécification des besoins
Ismahen Traya
 
Workshop spring session 2 - La persistance au sein des applications Java
Workshop spring   session 2 - La persistance au sein des applications JavaWorkshop spring   session 2 - La persistance au sein des applications Java
Workshop spring session 2 - La persistance au sein des applications Java
Antoine Rey
 
Mise en oeuvre des framework de machines et deep learning v1
Mise en oeuvre des framework de machines et deep learning v1 Mise en oeuvre des framework de machines et deep learning v1
Mise en oeuvre des framework de machines et deep learning v1
ENSET, Université Hassan II Casablanca
 
Stratégie de tests type
Stratégie de tests typeStratégie de tests type
Stratégie de tests type
madspock
 
Présentation Maven
Présentation MavenPrésentation Maven
Présentation Maven
SOAT
 

Tendances (20)

Maven
MavenMaven
Maven
 
Automatisation des tests
Automatisation des testsAutomatisation des tests
Automatisation des tests
 
La spécification des besoins
La spécification des besoinsLa spécification des besoins
La spécification des besoins
 
Workshop spring session 2 - La persistance au sein des applications Java
Workshop spring   session 2 - La persistance au sein des applications JavaWorkshop spring   session 2 - La persistance au sein des applications Java
Workshop spring session 2 - La persistance au sein des applications Java
 
Mise en oeuvre des framework de machines et deep learning v1
Mise en oeuvre des framework de machines et deep learning v1 Mise en oeuvre des framework de machines et deep learning v1
Mise en oeuvre des framework de machines et deep learning v1
 
Initiation à Express js
Initiation à Express jsInitiation à Express js
Initiation à Express js
 
Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Architectures 3-tiers (Web)
Architectures 3-tiers (Web)
 
Exposée: Processus de test logiciel
Exposée:  Processus de test logiciel Exposée:  Processus de test logiciel
Exposée: Processus de test logiciel
 
Docker, Linux Containers (LXC), and security
Docker, Linux Containers (LXC), and securityDocker, Linux Containers (LXC), and security
Docker, Linux Containers (LXC), and security
 
Présentation PFE
Présentation PFEPrésentation PFE
Présentation PFE
 
Introduction au génie logiciel
Introduction au génie logicielIntroduction au génie logiciel
Introduction au génie logiciel
 
Support de cours Spring M.youssfi
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfi
 
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka StreamsTraitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
 
DEVOPS - La synthèse
DEVOPS - La synthèseDEVOPS - La synthèse
DEVOPS - La synthèse
 
Formation JAVA/J2EE
Formation JAVA/J2EEFormation JAVA/J2EE
Formation JAVA/J2EE
 
Types de tests vs techniques de tests
Types de tests vs techniques de testsTypes de tests vs techniques de tests
Types de tests vs techniques de tests
 
Stratégie de tests type
Stratégie de tests typeStratégie de tests type
Stratégie de tests type
 
Rapport Pfe Application Web e-commerce Symfony2
Rapport Pfe Application Web e-commerce Symfony2Rapport Pfe Application Web e-commerce Symfony2
Rapport Pfe Application Web e-commerce Symfony2
 
Automatisation des tests - objectifs et concepts - partie 1
Automatisation des tests  - objectifs et concepts - partie 1Automatisation des tests  - objectifs et concepts - partie 1
Automatisation des tests - objectifs et concepts - partie 1
 
Présentation Maven
Présentation MavenPrésentation Maven
Présentation Maven
 

En vedette

Excel Team Présentation des offres
Excel Team Présentation des offresExcel Team Présentation des offres
Excel Team Présentation des offres
reymaxime
 

En vedette (8)

Excel Team Présentation des offres
Excel Team Présentation des offresExcel Team Présentation des offres
Excel Team Présentation des offres
 
Qlik view centre de contact
Qlik view centre de contact Qlik view centre de contact
Qlik view centre de contact
 
Building an ETL pipeline for Elasticsearch using Spark
Building an ETL pipeline for Elasticsearch using SparkBuilding an ETL pipeline for Elasticsearch using Spark
Building an ETL pipeline for Elasticsearch using Spark
 
ElasticSearch : Architecture et Développement
ElasticSearch : Architecture et DéveloppementElasticSearch : Architecture et Développement
ElasticSearch : Architecture et Développement
 
Project Management Introduction (4/5) for Gobelins students
Project Management Introduction (4/5) for Gobelins studentsProject Management Introduction (4/5) for Gobelins students
Project Management Introduction (4/5) for Gobelins students
 
Project Management Introduction (1/5) for Gobelins students
Project Management Introduction (1/5) for Gobelins studentsProject Management Introduction (1/5) for Gobelins students
Project Management Introduction (1/5) for Gobelins students
 
Business intelligence & logiciel QlikView - Computerland
Business intelligence & logiciel QlikView - ComputerlandBusiness intelligence & logiciel QlikView - Computerland
Business intelligence & logiciel QlikView - Computerland
 
Tirer le meilleur de ses données avec ElasticSearch
Tirer le meilleur de ses données avec ElasticSearchTirer le meilleur de ses données avec ElasticSearch
Tirer le meilleur de ses données avec ElasticSearch
 

Similaire à Presentation test de_charge_jmeter

Université de la performance - Devoxx France
Université de la performance - Devoxx FranceUniversité de la performance - Devoxx France
Université de la performance - Devoxx France
Marc Bojoly
 

Similaire à Presentation test de_charge_jmeter (20)

Performance ug#1
Performance ug#1Performance ug#1
Performance ug#1
 
Perf university
Perf universityPerf university
Perf university
 
Université de la performance
Université de la performanceUniversité de la performance
Université de la performance
 
Université de la performance - Devoxx France
Université de la performance - Devoxx FranceUniversité de la performance - Devoxx France
Université de la performance - Devoxx France
 
Tra optimiser preparation_tests_v1
Tra optimiser preparation_tests_v1Tra optimiser preparation_tests_v1
Tra optimiser preparation_tests_v1
 
Et si mon test était la spécification de mon application ? - JACOB - iWE - So...
Et si mon test était la spécification de mon application ? - JACOB - iWE - So...Et si mon test était la spécification de mon application ? - JACOB - iWE - So...
Et si mon test était la spécification de mon application ? - JACOB - iWE - So...
 
20111004 04 - Présentation ATDD
20111004 04 - Présentation ATDD20111004 04 - Présentation ATDD
20111004 04 - Présentation ATDD
 
Avis d'expert : Les Tests Logiciels
Avis d'expert : Les Tests LogicielsAvis d'expert : Les Tests Logiciels
Avis d'expert : Les Tests Logiciels
 
Presentation Rex Methodes Agiles
Presentation Rex Methodes AgilesPresentation Rex Methodes Agiles
Presentation Rex Methodes Agiles
 
Confoo 2016: Initiation aux tests de charge
Confoo 2016: Initiation aux tests de chargeConfoo 2016: Initiation aux tests de charge
Confoo 2016: Initiation aux tests de charge
 
Automatisation des tests - objectifs et concepts - partie 2
Automatisation des tests  - objectifs et concepts - partie 2Automatisation des tests  - objectifs et concepts - partie 2
Automatisation des tests - objectifs et concepts - partie 2
 
Openerp
OpenerpOpenerp
Openerp
 
La Maîtrise de Java au sein du SI
La Maîtrise de Java au sein du SILa Maîtrise de Java au sein du SI
La Maîtrise de Java au sein du SI
 
sûreté de fonctionnement du logiciel
 sûreté de fonctionnement du logiciel sûreté de fonctionnement du logiciel
sûreté de fonctionnement du logiciel
 
[Agile Testing Day] Tests de charge
[Agile Testing Day] Tests de charge [Agile Testing Day] Tests de charge
[Agile Testing Day] Tests de charge
 
Methodologie projet
Methodologie projet Methodologie projet
Methodologie projet
 
Load test & performance profiling
Load test & performance profilingLoad test & performance profiling
Load test & performance profiling
 
qualimétrie logiciel - Entreprise Software Analytic - nov 2015
qualimétrie logiciel -  Entreprise Software Analytic - nov 2015qualimétrie logiciel -  Entreprise Software Analytic - nov 2015
qualimétrie logiciel - Entreprise Software Analytic - nov 2015
 
Presentation tests d'acceptations automatisés sug v1.1
Presentation tests d'acceptations automatisés sug v1.1Presentation tests d'acceptations automatisés sug v1.1
Presentation tests d'acceptations automatisés sug v1.1
 
Scub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libreScub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libre
 

Presentation test de_charge_jmeter

  • 1.
  • 2. Plan de notre intervention 1. Pourquoi le test de charge ? 2. Les différents types de tests de charge 1.1. Le test de performance 1.2. Le test aux limites 3. Méthode 2.1. Pré-requis 2.2. Préparation des scénarios 2.3. Lancement du test de charge 2.4. Interprétation des résultats
  • 3. Plan de notre intervention 4. Réalisation d'un test en direct avec Jmeter 4.1. Généralités 4.2. L'interface Jmeter 4.3. Les éléments 4.4. Le proxy HTTP 4.5. Les sources de données 4.6. Visualisation des résultats 4.7. Exemple de scénario complet 5. Présentation de Syloé 6. Suite des présentations Syloe des logiciels libres
  • 4. 1. Pourquoi le test de charge Syloé - 2014
  • 5. Introduction (1/2) ● Une application Web est un site hébergé sur des serveurs Syloé - 2014
  • 6. Introduction (1/2) ● Une application Web est un site hébergé sur des serveurs ● Même si celui-ci fonctionne bien, des ralentissements peuvent apparaître : – Passage en haute saison dans des cas où la fréquentation varie au cours de l'année – Augmentation de l'audience suite à un spot publicitaire ou un envoi de mailing Syloé - 2014
  • 7. Introduction (2/2) ● Un test de charge consiste à solliciter le site Internet en lui appliquant un certain nombre de requêtes automatisées Syloé - 2014
  • 9. Introduction (2/2) ● Un test de charge consiste à solliciter le site Internet en lui appliquant un certain nombre de requêtes automatisées ● Il permet d'observer son comportement au-delà de l'audience normale Syloé - 2014
  • 10. Les tests classiques ● Tests unitaires Tester de manière intrinsèque le programme Syloé - 2014
  • 11. Les tests classiques ● Tests unitaires Tester de manière intrinsèque le programme ● Tests de non-régression Eviter l'introduction de bugs lors de la correction d'autres bugs ou l'ajout de nouvelles fonctionnalités Syloé - 2014
  • 12. Les tests classiques ● Tests unitaires Tester de manière intrinsèque le programme ● Tests de non-régression Eviter l'introduction de bugs lors de la correction d'autres bugs ou l'ajout de nouvelles fonctionnalités ● Tests fonctionnels Valider que les fonctionnalités attendues marchent Syloé - 2014
  • 13. Limites ● Combien d'utilisateurs simultanés l'application peut tolérer ? Syloé - 2014
  • 14. Limites ● Combien d'utilisateurs simultanés l'application peut tolérer ? ● Comment vont évoluer les temps de réponse avec l'augmentation de l'audience ? Syloé - 2014
  • 15. Limites ● Combien d'utilisateurs simultanés l'application peut tolérer ? ● Comment vont évoluer les temps de réponse avec l'augmentation de l'audience ? ● Quel est le composant de l'application qui sera le facteur limitant à la montée en charge ? Syloé - 2014
  • 16. Limites ● Combien d'utilisateurs simultanés l'application peut tolérer ? ● Comment vont évoluer les temps de réponse avec l'augmentation de l'audience ? ● Quel est le composant de l'application qui sera le facteur limitant à la montée en charge ? ● Comment vont réagir les composants à de nombreux accès concurrents ? Syloé - 2014
  • 17. Préconisations ● Les tests de charge doivent être intégrés dans le processus de développement Syloé - 2014
  • 18. Préconisations ● Les tests de charge doivent être intégrés dans le processus de développement ● Ils sont à prévoir avant tout déploiement en production d'une nouvelle application Syloé - 2014
  • 19. Préconisations ● Les tests de charge doivent être intégrés dans le processus de développement ● Ils sont à prévoir avant tout déploiement en production d'une nouvelle application ● Chaque nouvelle version de l'application devrait également être testée Syloé - 2014
  • 20. 2. Les différents types de tests de charge Syloé - 2014
  • 21. Le test de performance (1/2) ● On définit le nombre maximal d'utilisateurs virtuels en fonction de l'audience réelle attendue Syloé - 2014
  • 22. Le test de performance (1/2) ● On définit le nombre maximal d'utilisateurs virtuels en fonction de l'audience réelle attendue ● On peut faire varier le nombre d'utilisateurs par paliers Syloé - 2014
  • 23. Le test de performance (1/2) ● On définit le nombre maximal d'utilisateurs virtuels en fonction de l'audience réelle attendue ● On peut faire varier le nombre d'utilisateurs par paliers ● La durée de chaque palier peut se prolonger afin de valider le fonctionnement dans le temps Syloé - 2014
  • 24. Le test de performance (2/2) ● Met en évidence des points sensibles et critiques de l'architecture technique Syloé - 2014
  • 25. Le test de performance (2/2) ● Met en évidence des points sensibles et critiques de l'architecture technique ● Permet la prise de métriques de l'application en fonctionnement (temps de réponse, charge système, requêtes en base de données, etc.) Syloé - 2014
  • 26. Le test aux limites (1/2) ● On définit un nombre d'utilisateurs virtuels sans cesse croissant Syloé - 2014
  • 27. Le test aux limites (1/2) ● On définit un nombre d'utilisateurs virtuels sans cesse croissant ● On teste l'application avec une activité bien supérieure à l'activité normale Syloé - 2014
  • 28. Le test aux limites (1/2) ● On définit un nombre d'utilisateurs virtuels sans cesse croissant ● On teste l'application avec une activité bien supérieure à l'activité normale ● On multiplie les accès concurrents aux mêmes processus métiers Syloé - 2014
  • 29. Le test aux limites (2/2) ● Tester les réactions du système aux limites du modèle d'usage de l'application Syloé - 2014
  • 30. Le test aux limites (2/2) ● Tester les réactions du système aux limites du modèle d'usage de l'application ● Déterminer la capacité maximale de l'ensemble dans une optique prévisionnelle Syloé - 2014
  • 31. Le test aux limites (2/2) ● Tester les réactions du système aux limites du modèle d'usage de l'application ● Déterminer la capacité maximale de l'ensemble dans une optique prévisionnelle ● Mettre en évidence la limite de crash de l'application ou du système Syloé - 2014
  • 32. 3. Méthode de mise en place Syloé - 2014
  • 33. Pré-requis ● Avoir à disposition un système de supervision déployé sur la plate-forme Syloé - 2014
  • 34. Pré-requis ● Avoir à disposition un système de supervision déployé sur la plate-forme ● Connaître le type d'architecture et le nombre de serveurs Syloé - 2014
  • 35. Pré-requis ● Avoir à disposition un système de supervision déployé sur la plate-forme ● Connaître le type d'architecture et le nombre de serveurs ● Connaître les mécanismes de cache en place Syloé - 2014
  • 36. Pré-requis ● Avoir à disposition un système de supervision déployé sur la plate-forme ● Connaître le type d'architecture et le nombre de serveurs ● Connaître les mécanismes de cache en place ● Bouchonner les appels aux services externes pour tester uniquement le service désiré Syloé - 2014
  • 37. Préparation des scénarios ● Définir un ou plusieurs déroulements d'actions typiques d'un utilisateur réel Syloé - 2014
  • 38. Préparation des scénarios ● Définir un ou plusieurs déroulements d'actions typiques d'un utilisateur réel ● Identifier les requêtes au service que chaque action est censée faire Syloé - 2014
  • 39. Préparation des scénarios ● Définir un ou plusieurs déroulements d'actions typiques d'un utilisateur réel ● Identifier les requêtes au service que chaque action est censée faire ● Définir des pauses qui correspondent aux temps de réaction de l'utilisateur réel Syloé - 2014
  • 40. Préparation des scénarios ● Définir un ou plusieurs déroulements d'actions typiques d'un utilisateur réel ● Identifier les requêtes au service que chaque action est censée faire ● Définir des pauses qui correspondent aux temps de réaction de l'utilisateur réel ● Créer des comptes sur l'application pour chaque utilisateur virtuel Syloé - 2014
  • 41. Lancement du test de charge ● Partir d'une base de données prédéfinie qui pourra être réinitialisée avant chaque test Syloé - 2014
  • 42. Lancement du test de charge ● Partir d'une base de données prédéfinie qui pourra être réinitialisée avant chaque test ● Lancer un pré-test sur une durée courte pour valider qu'il n'y a pas de dysfonctionnement apparent Syloé - 2014
  • 43. Lancement du test de charge ● Partir d'une base de données prédéfinie qui pourra être réinitialisée avant chaque test ● Lancer un pré-test sur une durée courte pour valider qu'il n'y a pas de dysfonctionnement apparent ● Lancer le test de charge Syloé - 2014
  • 44. Interprétation des résultats (1/3) ● Séparer les requêtes statiques (images, css, etc.) des requêtes de contenu Syloé - 2014
  • 45. Interprétation des résultats (1/3) ● Séparer les requêtes statiques (images, css, etc.) des requêtes de contenu ● Pour chaque type de requête, combiner sous forme de graphes : - le nombre de requêtes simultanées - les temps de réponse - les codes retours des requêtes (succès ou erreur) Syloé - 2014
  • 46. Interprétation des résultats (2/3) ● Mettre en corrélation ces graphes avec les graphes systèmes récoltés par la supervision Syloé - 2014
  • 47. Interprétation des résultats (2/3) ● Mettre en corrélation ces graphes avec les graphes systèmes récoltés par la supervision ● Mettre en évidence les points limites de l'application Syloé - 2014
  • 48. Interprétation des résultats (2/3) ● Mettre en corrélation ces graphes avec les graphes systèmes récoltés par la supervision ● Mettre en évidence les points limites de l'application ● En expliquer les raisons à l'aide des informations remontées par la supervision Syloé - 2014
  • 49. Interprétation des résultats (3/3) ● Auditer et préconiser des optimisations : – Applicatives (code, base de données) – Systèmes (configurations, tuning) – Architecture (scalabilité) Syloé - 2014
  • 51. Généralités ● Outil fourni par la Fondation Apache sous licence Apache Syloé - 2014
  • 52. Généralités ● Outil fourni par la Fondation Apache sous licence Apache Syloé - 2014 ● Ecrit en Java
  • 53. Généralités ● Outil fourni par la Fondation Apache sous licence Apache Syloé - 2014 ● Ecrit en Java ● Fonctionne en mode standalone ou client/serveur
  • 54. Généralités ● Outil fourni par la Fondation Apache sous licence Apache Syloé - 2014 ● Ecrit en Java ● Fonctionne en mode standalone ou client/serveur ● Permet de tester de nombreux types de serveurs : web, bases de données, LDAP, mail, etc.
  • 55. L'interface Jmeter (1/2) Syloé - 2014
  • 56. L'interface Jmeter (2/2) ● Le plan de test peut être divisé en groupes d'unités et contient les éléments des scénarios Syloé - 2014
  • 57. L'interface Jmeter (2/2) ● Le plan de test peut être divisé en groupes d'unités et contient les éléments des scénarios ● Le plan de travail contient tous les éléments hors scénario (configuration du proxy, tableaux de résultats, etc.) Syloé - 2014
  • 58. L'interface Jmeter (2/2) ● Le plan de test peut être divisé en groupes d'unités et contient les éléments des scénarios ● Le plan de travail contient tous les éléments hors scénario (configuration du proxy, tableaux de résultats, etc.) ● Le test de charge se lance en cliquant sur l'icône Syloé - 2014
  • 59. Les éléments (1/2) ● Les échantillons sont les requêtes qui seront envoyées au serveur Syloé - 2014
  • 60. Les éléments (1/2) ● Les échantillons sont les requêtes qui seront envoyées au serveur ● Les contrôleurs permettent de structurer les échantillons (si, boucles, aléatoire) Syloé - 2014
  • 61. Les éléments (1/2) ● Les échantillons sont les requêtes qui seront envoyées au serveur ● Les contrôleurs permettent de structurer les échantillons (si, boucles, aléatoire) ● Les compteurs de temps sont utiles pour insérer des pauses dans le scénario Syloé - 2014
  • 62. Les éléments (2/2) ● Les pré- ou post-processeurs peuvent générer ou extraire des données d'un échantillon Syloé - 2014
  • 63. Les éléments (2/2) ● Les pré- ou post-processeurs peuvent générer ou extraire des données d'un échantillon ● Les récepteurs offrent plusieurs moyens de présenter les résultats (graphiques, tableaux, arbres, etc.) Syloé - 2014
  • 64. Le proxy HTTP (1/3) ● Il permet de simplifier l'écriture des scénarios Syloé - 2014
  • 65. Le proxy HTTP (1/3) ● Il permet de simplifier l'écriture des scénarios ● Proxy HTTP en écoute sur le port 8080 Syloé - 2014
  • 66. Le proxy HTTP (1/3) ● Il permet de simplifier l'écriture des scénarios ● Proxy HTTP en écoute sur le port 8080 ● Configuration du proxy dans le navigateur Syloé - 2014
  • 67. Le proxy HTTP (1/3) ● Il permet de simplifier l'écriture des scénarios ● Proxy HTTP en écoute sur le port 8080 ● Configuration du proxy dans le navigateur ● Déroulement du scénario souhaité à la main Syloé - 2014
  • 68. Le proxy HTTP (1/3) ● Il permet de simplifier l'écriture des scénarios ● Proxy HTTP en écoute sur le port 8080 ● Configuration du proxy dans le navigateur ● Déroulement du scénario souhaité à la main ● Interception à la volée de toutes les requêtes : - URL - En-têtes HTTP - Paramètres POST et GET Syloé - 2014
  • 69. Le proxy HTTP (2/3) Syloé - 2014
  • 70. Le proxy HTTP (3/3) Syloé - 2014
  • 71. Les sources de données ● Pré-charger des variables à partir d'un fichier CSV ou d'une base de données Syloé - 2014
  • 72. Les sources de données ● Pré-charger des variables à partir d'un fichier CSV ou d'une base de données ● Effectuer de manière itérative une requête pour chaque élément (ex : créer 10 comptes prédéfinis au sein de l'application) Syloé - 2014
  • 73. Les sources de données ● Pré-charger des variables à partir d'un fichier CSV ou d'une base de données ● Effectuer de manière itérative une requête pour chaque élément (ex : créer 10 comptes prédéfinis au sein de l'application) ● Tirer un élément aléatoirement et l'utiliser dans un scénario (ex : choisir un compte et lui faire exécuter des actions) Syloé - 2014
  • 75. 5. Présentation de Syloé Syloé - 2014
  • 76. Syloé : Expertise Linux Syloé - 2014 ● Services : – Audit des SI de production – Audit de sécurité – Test de charge Applicatif – Supervision fine des applications Web critiques – Intégration d'outils systèmes sur mesures – Formation autours des technologies Linux et réseaux ● Support en Crédit Tempsen mode pompier
  • 77. Syloé : Expertise Linux ● Hébergement et infogérance : – 2 Datacenters – Plateformes en Haute Disponiblité – Failover, Loadbalancing, Clustering – Cloud , SaaS, Virtualisation Syloé - 2014 ● Travail collaboratif – Zimbra, BlueMind, Open-Xchange..
  • 78. Suite des présentations Syloe des logiciels libres Sujets Transverses: ● Présentation : Bonnes pratiques d'installation et d'infogérance d'un serveur sur internet ● Présentation : Concevoir et réussir un test de charge applicatif avec scénarios de navigation Syloé - 2014 des applications Web; ● Présentation : Autour de La supervision : Quoi superviser ? Quelle metrique, jusqu'a quel détails , quel processus organisationnel ? ● Présentation des différentes composantes de la lutte Anti-Spam sous Linux; ● Présentation de GIT GitLab ...; ● Présentation des nouveautés de Jboss7 et Tomcat 7;
  • 79. Suite des présentations Syloe des logiciels libres Sujets Techniques: ● Présentation des différentes solutions de High Aviability de Mysqls ; ● Présentation des alternatives à Mysql de Oracle; ● Comment sécuriser un serveur Web , coté système ; ● Présentation de deux solutions de messagerie opensource : Zimbra -Bluemind; ● Présentation des solutions de Haute-Disponibilité sous Linux; ● Présentation d'une solution à base de brique opensource d'automatisation (Industrialisation) Syloé - 2014 des mises en production; ● Présentation de Cfengine comme outils de centralisation des configurations; ● Présentation : Que faire suite à un hack d'un serveur internet ? ● Présentation : comment choisir une solution de virtualisation ?
  • 80. Vos Questions ... Nous contacter : www.syloe.fr Support Linux professionnel http://www.services-linux.fr contact@syloe.info Syloé - 2014