Test de montée en charge avec Microsoft Azure (deuxième partie)

1-   Introduction

Cet article fait suite à un premier article dans lequel j’explique la façon dont on peut mettre en place des tests de montée en charge basique avec Microsoft Azure. Vous pourrez trouver cet article ici. Le but de cette seconde partie et de voir comment mettre en place des tests plus aboutis nous allons passer par Visual Studio afin de mettre en place nos tests.

2-   Mise en place

Ce paragraphe décrit les différentes étapes à suivre afin de mettre en place les différentes briques nécessaire à la mise en place d’un test de montée en charge. Nous commencerons par la création d’un projet de type test de performance, pour enchainer sur la définition de nos scénarios de tests, pour finir par la configuration relative à notre test de charge.

Chose importante à prendre en compte, c’est que pour pouvoir mettre en place ce type de test en utilisant la plateforme Azure, il vous faudra avoir la version Enterprise de Visual Studio 2015.

Alors trêve de bavardage et passons à la première étape.

2.1-     Création d’un projet de test de performance

Donc comme dit précédemment, la première étape à suivre et de créer un nouveau projet de type « Performance test ».

blog ai3 ProjectCreation Test de montée en charge avec Microsoft Azure (deuxième partie)

2.2-     Mise en place d’un scénario de test

Notre projet de test étant créé, nous allons maintenant pouvoir mettre en place notre premier scénario de test. Pour ce faire, faites un clic droit sur votre projet de test et sélectionnez l’option Add Recording. Une nouvelle instance d’Internet Explorer va alors s’ouvrir afin de vous permettre d’enregistrer les actions utilisateurs entrant dans le cadre de votre test.

blog ai3 NewRecord Test de montée en charge avec Microsoft Azure (deuxième partie)

Attention, pour effectuer l’enregistrement des actions utilisateur au niveau du browser, un composant est installé sur Internet Explorer mais désactivé par défaut. Afin de pouvoir fonctionner rendez-vous dans les options d’Internet Explorer est activez le composant Microsoft Web Test Recorder comme montré dans l’image ci-dessous.

blog ai3 ActivationWebTestRecorderSurBrowser Test de montée en charge avec Microsoft Azure (deuxième partie)

 

Au fur et à mesure de l’avancée de vos tests, vous pouvez voir que les différentes actions effectuées au niveau du navigateur sont enregistrées par le composant. Lorsque vous avez finis, cliquez sur le bouton Stop du composant d’enregistrement.

blog ai3 WebTestRecorder Test de montée en charge avec Microsoft Azure (deuxième partie)

 

 

Vous pouvez alors voir que l’ensemble de vos actions ont été pris en compte pour la mise en place de votre scénario de test. Nous allons pouvoir passer à la création de notre test de charges.

blog ai3 NouvelleEnregistrementStep2 Test de montée en charge avec Microsoft Azure (deuxième partie)

2.3-     Mise en place du test de charge

Pour pouvoir lancer la création de notre test de montée en charge, faîtes un clic droit sur le projet de test et ajoutez un test de charge (Load Test).

blog ai3 NewPerformanceTest Test de montée en charge avec Microsoft Azure (deuxième partie)

Un wizard va alors s’ouvrir vous permettant de mettre en place le paramétrage de votre test, sur le premier écran de présentation, cliquez sur « Next ».

blog ai3 TestCreation Test de montée en charge avec Microsoft Azure (deuxième partie)

Le premier écran permet de donner un nom à votre test ainsi que la configuration de la simulation du comportement humain. Concernant cette partie 3 paramètres sont disponibles :

  • Soit vous vous basez sur les délais enregistrés entre chaque action durant l’enregistrement de votre scénario de test.
  • Soit vous utilisez le mode de distribution normal, les temps de réflexion durant les tests respecteront une courbe normale afin de rendre plus réaliste les tests.
  • Soit vous n’utilisez aucun délai entre chaque action

blog ai3 TestCreation2 Test de montée en charge avec Microsoft Azure (deuxième partie)

La partie Load Pattern vous permet de configurer la façon dans les connexions des utilisateurs se feront au fil du temps, ainsi que le nombre maximum d’utilisateurs qui seront utilisés durant ce test.

blog ai3 TestCreation3 Test de montée en charge avec Microsoft Azure (deuxième partie)

L’écran Test Mix Model vous permet de spécifier la manière dont seront répartis les différents scénarios de test composant votre test de charge. Dans le cadre de notre exemple nous prendrons la valeur par défaut, vu que notre test de charge ne sera composé que d’un seul scénario de test.

blog ai3 TestCreation4 Test de montée en charge avec Microsoft Azure (deuxième partie)

La partie Test Mix vous permet de sélectionner les différents scénarios de test qui seront utilisés lors de votre campagne de tests de charge.

blog ai3 TestCreation5 Test de montée en charge avec Microsoft Azure (deuxième partie)

La partie Network Mix vous permet de simuler plusieurs types de réseaux au niveau de votre test, ainsi que la répartition de ceux-ci lors du déroulement du test.

NB : Au niveau de la version actuelle de cette fonctionnalité au niveau Azure, seul les réseaux de type LAN sont pris en compte pour les tests pris en charge au niveau Azure.

blog ai3 TestCreation6 Test de montée en charge avec Microsoft Azure (deuxième partie)

La partie Browser Mix, vous permet de simuler plusieurs types de navigateurs au niveau de votre test, et de définir la répartition entre les différents navigateurs que vous aurez sélectionnés.

blog ai3 TestCreation7 Test de montée en charge avec Microsoft Azure (deuxième partie)

La partie Run Settings vous permet principalement de configurer la durée de votre test et le nombre d’itération de celui-ci.

blog ai3 TestCreation8 Test de montée en charge avec Microsoft Azure (deuxième partie)

Enfin le dernier écran de notre wizard, permet de configurer les informations relatives à la partie Azure.

Dans un premier temps il vous faudra sélectionner un compte Visual Studio Online qui sera utilisé pour votre test (Ce compte devra être liée à votre subscription Azure. Pour plus d’information concernant la mise en place de cette liaison, vous pouvez vous référer à la première partie de cet article).

Ensuite vous pouvez sélectionner la localisation depuis laquelle, les tests seront lancés.

blog ai3 TestCreation9 Test de montée en charge avec Microsoft Azure (deuxième partie)

Dès que vous aurez finis la configuration de votre test, vous pouvez valider celle-ci en cliquant sur le bouton Finish.

Notre test de montée en charge étant configuré, nous allons maintenant pouvoir passer à l’exécution de celui-ci.

2.4-     Lancement du test

Le moment est venu de lancer notre test. Pour ce faire il vous suffit de cliquer sur le bouton en haut à gauche de la barre de menu, et c’est partit.

blog ai3 RunTest Test de montée en charge avec Microsoft Azure (deuxième partie)

Lors du déroulement de votre test, vous avez accès à l’ensemble des métriques concernant votre test comme le montre l’image ci-dessous.

blog ai3 Result Test de montée en charge avec Microsoft Azure (deuxième partie)

A la fin de l’exécution de votre test, un rapport sera généré avec toutes les informations des métriques et leurs évolutions dans le temps, relevés lors de votre test.

blog ai3 TestReporting Test de montée en charge avec Microsoft Azure (deuxième partie)

2.5-     Analyse des résultats avec Application Insights

Dans le cas où vous auriez mise en place Application Insights au sein de l’application en cours de test, vous pourrez avoir accès à un certain nombre d’informations supplémentaires qui vous permettra d’aller encore plus loin au niveau de l’analyse des performances de votre application.

blog ai3 Insight Test de montée en charge avec Microsoft Azure (deuxième partie)

Il vous sera aussi possible de descendre au niveau unitaire, et d’avoir accès à un certain nombre de métrique relatif à chacune des requêtes effectuées durant le test. Si nous regardons l’image ci-dessous, j’ai configuré Application Insight afin de pouvoir récupérer les informations concernant les différentes requêtes effectuées au niveau de l’application, et pour chacune de ces requêtes, je suis en mesure d’afficher le temps d’exécution de la requête, mais aussi le temps d’exécution des différentes dépendances de ma requête, dans ce cas-là une requête effectuée sur une base de données SQL Azure.

blog ai3 Insight2 Test de montée en charge avec Microsoft Azure (deuxième partie)

 

3-   Conclusion

Nous avons pu voir au cours de ces deux articles comment la plateforme Azure simplifie la mise en place des tests de montée en charge afin de tester les performances d’une application, et de vérifier que le niveau du plan de service que vous avez choisis correspond à vos besoins. De plus nous avons pu voir que couplé à Application Insights nous pouvions mettre en place une analyse poussée des performances de notre application.

Concernant le pricing, cette fonctionnalité étant en Preview celle-ci est pour l’instant gratuite et les informations concernant les coûts ne sont pas encore disponibles pour l’heure. En espérant que cet article vous aura été utile.

 

 

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.