Load test & performance profiling

Preview:

Citation preview

Architecture Web Comment bâtir des applications ultra performante

avec des tests de charge et l’analyse de processus ?

Hugo DoyonConsultant Application Web & Tech Enthusiast

Hugo.Doyon@ViaWebTech.caViaWebTech.ca

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.caApplication Ultra-Performante - Tests de charge et l’analyse de processus 2

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

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!

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

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 !

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.

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)

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ésultatsIdentifier problèmesImplanter solutions

1. Écrire scénarios de tests(User Case)

3. Exécuter Test de charge

& Profiling

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 UITests

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)

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

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

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)

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

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)

À 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

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

Analyse de Processus (Hot Path)

Application Ultra-Performante - Tests de charge et l’analyse de processus 19

Démonstration Technique

Application Ultra-Performante - Tests de charge et l’analyse de processus 20

Question ?

Application Ultra-Performante - Tests de charge et l’analyse de processus 21

Références

Application Ultra-Performante - Tests de charge et l’analyse de processus 22

Pour me rejoindre : Hugo@viawebtech.ca