1. Architecture Web
Comment bâtir des applications ultra performante
avec des tests de charge et l’analyse de processus ?
Hugo Doyon
Consultant Application Web & Tech Enthusiast
Hugo.Doyon@ViaWebTech.ca
ViaWebTech.ca
2. Qui suis-je ?
Spécialiste en développement d’applications Web ayant +15 ans d’expérience dans le
secteur du e-Commerce, des Engins de recherche, des médias et de la Finance
Passionné des technologies et du Surf
Hugo@ViaWebTech.ca
Application Ultra-Performante - Tests de charge et l’analyse de processus 2
3. Qui connait ?
Application Ultra-Performante - Tests de charge et l’analyse de processus 3
Clippy le Trombone a été choisi comme étant la
3e pire invention de tous les temps par la magazine Time en 2010
4. En informatique …
Application Ultra-Performante - Tests de charge et l’analyse de processus 4
Des fois, ça va pas toujours exactement comme prévu !
Parfois, les technologies utilisées qui n’offrent pas le niveau de
performance requis!
5. Que faire quand on a des
Problèmes de performance?
Application Ultra-Performante - Tests de charge et l’analyse de processus 5
Test de charge
&
Profiling
6. Pourquoi les Tests de charge ?
Application Ultra-Performante - Tests de charge et l’analyse de processus 6
• Diminuer vos factures d’utilisation dans le Cloud
• Tester votre application dans des Conditions réelles
• Réaliser une Opération de sauvetage
Si vous avez du succès avec un projet informatique, c'est pratiquement sûr
que vous aurez des problèmes de performance !
7. Qu’est-ce qu’un Test de Charge ?
Application Ultra-Performante - Tests de charge et l’analyse de processus 7
Les tests de charges consistent à simuler un très grand nombres
d’utilisateurs simultanément sur un système.
Le but recherché par ce type de test est de déterminer le
comportement d’une application dans des contraintes d’utilisation
réelles ou extrêmes.
8. Stratégie d’application de charge
Application Ultra-Performante - Tests de charge et l’analyse de processus 8
Load Local : quelques milliers
d’utilisateurs virtuels maximum
( puissance limité )
Load Test Rig : plusieurs centaines
de milliers d’utilisateurs possible
(un peu + compliqué à configurer)
Load via Cloud ($) : énormément
de puissance de frappe
(contraintes firewall & intranet)
9. Cycle : Tests de charge / Profiling
Application Ultra-Performante - Tests de charge et l’analyse de processus 9
2. Définir objectifs
(Utilisateurs, Response Time, %CPU)
4. Analyser résultats
Identifier problèmes
Implanter solutions
1. Écrire scénarios
de tests
(User Case)
3. Exécuter
Test de charge
& Profiling
10. Type de tests constituant un Test de Charge
Application Ultra-Performante - Tests de charge et l’analyse de processus 10
Load Test
Web TestsUnit Tests
Coded UI
Tests
11. Comment faire un Test de charge ?
Application Ultra-Performante - Tests de charge et l’analyse de processus 11
1. Avec Visual Studio, créer un projet Web Performance and Load Test
(Visual Studio Ultimate requis)
12. Comment faire un Test de charge ?
Application Ultra-Performante - Tests de charge et l’analyse de processus 12
2. Créer un Web Performance Test et enregistrer une session avec le Web Test Recorder
1
2
3
13. Comment faire un Test de charge ?
Application Ultra-Performante - Tests de charge et l’analyse de processus 13
Dans les Web Performance Tests les Extractions et Validations Rules
sont l’équivalent des Assertions dans les Unit tests
14. Comment faire un Test de charge ?
Application Ultra-Performante - Tests de charge et l’analyse de processus 14
3. Créer un Load Test (sera composé de WebTest et/ou Unit Test)
15. Comment faire un Test de charge ?
Application Ultra-Performante - Tests de charge et l’analyse de processus 15
4. Configurer initialement votre test de charge avec le Load Test Wizard
1 2
43
Run Load Test
16. Comment faire un Test de charge ?
Application Ultra-Performante - Tests de charge et l’analyse de processus 16
5. Exécuter le test de charge (Load Test)
17. À prendre en considération
Application Ultra-Performante - Tests de charge et l’analyse de processus 17
• Base de données utilisée pour générer tests (.mdf vs .xml)
• Simuler (Faker) Active Directory
• SQL Tracing et Profiling
• Think Time
• Export de Fidler vers un « Web Performance Test »
• Points d’extensibilités :
• Custom ExtractorRule & ValidatorRule
• Plug-in WPT Pré & Post Request
• Plug-in monitoring
18. Analyse de Processus (Profiling)
Application Ultra-Performante - Tests de charge et l’analyse de processus 18
Au même moment que la charge est appliquée, vous pouvez analyser/profiler votre
système afin de cibler très précisément où sont les points faibles !
• En local :
Analyse > Start Diagnostic Tools Without Debugging > CPU Sampling
• Sur le serveur :
Analyse > Attach Process (ex: w3wp.exe)
(Assurez-vous que les .pdb accompagne les .dll / .exe)
• Lors de l’analyse :
Call Tree > Hot Path > Right click > View Source
19. Analyse de Processus (Hot Path)
Application Ultra-Performante - Tests de charge et l’analyse de processus 19