Microsoft Application Center Test L'outil de Test de performance des Sites Web Avec Visual Studio.NET, il est fourni une petite application qui permet de valider la performance de son site Internet ou de son application WEB. Cette application est fournie avec les versions Enterprise de Visual Studio 2003. Nous allons dans cet article montrer par un exemple simple comment mettre en place un test d'application WEB. Introduction Lors de nos développements de site Web, nous avons souvent des exigences quand à la performance de ce site. Nous avons donc régulièrement à prouver que telle application ou tel site internet est capable de résister à x utilisateurs et qu'au bout d'y utilisateurs la performance chute et nécessite des investissements supplémentaires. De nombreux outils sur le marché permettent de faire ce travail et de répondre à ces questions de performances. Pourtant, il en existe un qui est peu connu mais qui est fourni avec Visual Studio.NET. Nous allons donc présenter cet outil et ensuite faire un exemple rapide de création de test.
Présentation Microsoft Application Center Test est fourni avec Visual Studio.NET est fournie avec les versions : Visual Studio.NET Architect Visual Studio.NET Enterprise Vous trouvez cet outil lors de l'installation dans les outils de développement pour l'entreprise, comme le montre la capture suivante. Une fois cette installation faite, vous trouverez l'outil dans le menu : Démarrer > Microsoft Visual Studio.NET 2003 > Fonctionnalités d'entreprise de Visual Studio.NET > Microsoft Application Center Test Voyons maintenant comment fonctionne l'outil et comment créer un test de performance depuis celui-ci.
Les Interfaces Une fois l'application lancée, nous voyons apparaître une interface avec deux parties distinctes ainsi qu'un menu. Dans cette interface, nous voyons sur la gauche les différentes parties qui nous intéresseront pour la création de notre test de performance (regroupés dans Test), mais aussi les rapports de ces tests (regroupés dans les résultats) et les Utilisateurs définis dans l'application de test. Les Test Si l'on choisi un des tests déjà fourni avec l'outil (dans les samples existants), par exemple "Type de navigateur", nous voyons apparaître un script VBScript permettant d'effectuer des taches précise. En effet, un test ACT est un script qui s'exécute et qui est totalement paramétrable. Nous verrons un exemple très simple mais les samples fournis montrent bien la puissance de l'outil.
Les Rapports Les rapports des exécutions des tests sont tous regroupés dans la partie résultats et selon le Test défini. On peut très bien faire un script de test puis le faire fonctionner avec 10, 100, 500 ou 1000 utilisateurs. On retrouvera les résultats sous forme de rapports graphique dans cette interface. Les Utilisateurs Les utilisateurs sont utilisés lors des tests sur les sites Web ayant une authentification Windows Intégrée. Il faut donc définir une liste de comptes qui auront accès à ce serveur (soit des comptes locaux au serveur Web, soit des comptes sur le domaine NT).
Pour mieux comprendre cette notion, je vous invite à consulter l'article suivant : Création d'un site web avec identification NT (FR) Ecran de contrôle du test en cours Lorsque l'on lance le test (Action > Démarrer le Test, ou simplement la petite icône "Play"), ACT nous présente une fenêtre afin de suivre l'évolution de ce test en direct. Cet écran nous présente graphiquement l'évolution du test avec un onglet supplémentaire fournissant l'état du test au temps donné. Maintenant que nous avons vu les différentes interfaces, voyons comment mettre en place un test simple. Vous pourrez le complexifier selon vos besoins par la suite.
Création d'un test simple En suivant le test concernant la performance d'un site SharePoint présenté dans l'article suivant : SharePoint Stress Testing (US) Nous allons réaliser un test qui nous permettra de comprendre les différentes étapes à suivre suivant les cas. Dans notre exemple, nous testerons l'url "localhost" qui est notre serveur WEB IIS de développement. Nous devons définir si nous utiliserons l'identification NT ou non (c'est à dire accès au site en anonyme). Dans le premier cas, il nous faudra ajouter les utilisateurs et leur mot de passe dans la gestion des Utilisateurs (préfixé par le Domaine ou la Machine), voyons comment faire. Création des Utilisateurs sur le Serveur Nous allons créer ce compte dans notre machine locale. Sous Windows XP et sous Windows 2000 cela se fait par : Démarrer > Panneau de Configuration > Outils d'administration > Gestion de l'ordinateur Dans cet écran, nous avons toute la gestion de l'ordinateur, nous pouvons aller dans "Utilisateurs et groupes locaux" et enfin dans "Utilisateurs". Nous pouvons alors avec le bouton droit cliquer "Nouvel utilisateur", et remplir comme suit (mot de passe = test) : On refait cette création 10 fois afin d'avoir une dizaine d'utilisateurs différents (on peut bien sur aller beaucoup plus loin avec un domaine en utilisant des scripts pour Active Directory).
Création des Utilisateurs dans ACT On va maintenant aller dans l'interface d'act, au niveau d'utilisateurs (dans le menu de gauche) cliquer avec le bouton droit, puis cliquer sur "Ajouter". On voit alors apparaître dans le menu de gauche un nouveau groupe nommé "Nouveau groupe d'utilisateurs" que l'on va renommer (via le bouton droit) en "Test_ASP-PHP".
Maintenant, nous allons reporter dans la partie de droite les comptes de test que nous avons créés précédemment, en les préfixant par le nom de la machine (ou du domaine). Une fois terminé, nos utilisateurs pour le test sont renseignés, nous pouvons faire le paramétrage de ce nouveau test. Création du Test dans ACT Pour cela, il faut soit aller dans l'écran d'accueil et cliquer sur "Création d'un test", soit cliquer avec le bouton droit de la souris sur "Tests" dans le menu de gauche et choisir "Nouveau test...". On lance alors un "Assistant de création".
On choisit alors un test vide, nous le compléterons à la main pour ce premier test de base. Il nous est demandé alors le langage de script que l'on souhaite utiliser, par défaut, il s'agit du VBScript (comme en ASP3), mais on peut aussi choisir le JScript si l'on est plus à l'aise avec ce langage.
Il ne reste plus qu'à fournir le nom que l'on souhaite pour ce nouveau test et cliquer "Suivant" puis "Terminer". On a donc notre nouveau test basique dans la liste et lorsque l'on clique dessus on voit l'action de celui-ci. Ainsi ce test fait une simple requête sur le serveur WEB local : Test.SendRequest("http://localhost")
Nous n'avons plus qu'à paramétrer l'exécution de ce test pour finir. Ceci se fait en cliquant avec le bouton droit de la souris sur ce nouveau test dans la liste et choisissant "Propriétés". Le premier onglet permet de spécifier le nombre de connexions simultanées (dans notre cas 5) lors de notre test et la durée de ce test (par défaut 5 minutes). On peut aussi faire un décompte d'un nombre précis d'exécutions. Attention, le nombre de connexions simultanées doit être inférieur ou égal au nombre de comptes présents dans la partie utilisateur que vous allez choisir. Le second onglet nous demande les comptes à utiliser pour ce test. Nous pouvons le laisser choisir lui-même, il utilisera les comptes anonymes, ou choisir dans la liste des pré remplis. Nous choisirons les utilisateurs que nous avons créés précédemment "Test_ASP-PHP".
Le dernier onglet, nous demande les paramètres pour la récupération des informations. On doit donner la fréquence de collecte des informations à utiliser pour ce test. On peut aussi ajouter des compteurs de performance. Pour cela, il faut avoir le droit de capter ces informations sur le serveur cible. Dans notre exemple, nous ajouterons l'usage du processeur au cours de ce test. Une fois ces paramètres fournis et validés, nous pouvons lancer le test en cliquant sur Actions > Démarrer le test (Ctrl+F5).
Une fois le test terminé, on peut regarder les résultats et statistiques de ce test. On peut aussi regarder les compteurs de performance pour ce test. Maintenant que nous avons vu pour un test basique, voyons comment faire un test plus complet sans développer de script.
Utilisation de l'enregistreur Nous pouvons aussi utiliser la seconde option lors de la création de notre test qui est l'utilisation de l'enregistreur de Scénario. Pour cela, créons un nouveau test qui fera une recherche sur le site de Google, en cherchant le mot "ASP-PHP". Au moment du choix de la source du test, nous sélectionnons la seconde option "Enregistrer un nouveau test". Nous conservons le VBScript comme langage par défaut et cliquons sur "Démarrer l'enregistrement".
Ce click va alors ouvrir une nouvelle fenêtre Internet Explorer et enregistrer tout ce qui y sera fait, comme aller sur le site de Google et chercher ASP-PHP. Une fois le scénario terminé, on clique sur "Arrêter l'enregistrement". On clique alors sur Suivant et donne un nom à ce nouveau test. On voit alors tout le script qui va être exécuté durant le test. Une fois ce test créé, nous avons plus qu'à l'exécuter comme on l'a fait précédemment.
Attention : 1) Il ne faut pas avoir d'autres navigateurs ouverts durant l'enregistrement du scénario, car vous risquez de polluer votre scénario par le fonctionnement des autres pages en cours (par exemple les rafraichissements des publicités de certains sites). 2) Dans le cas d'un site public (comme Google), n'oubliez pas que ceux-ci se navigue en anonyme, donc il faut bien prendre garde à sélectionner le "générer automatiquement...". De plus, vous ne pourrez pas non plus ajouter de compteur de performance. Si ces options de scriptage vous intéressent, je vous conseille de regarder les samples fournis qui vous donne une idée des possibilités de ces scénarii. Conclusion Je tiens dans cette partie à remercier Renaud Comte (Alias SharePoint Master) qui m'a fait utiliser et travailler avec cet outil. Celui-ci est très puissant (il suffit de regarder les Smaples fournis) et permet d'aller très loin dans le testing de son application WEB (test de post de fichier, test de validation suivant le navigateur, test de renseignement de formulaire,...). On peut aller beaucoup plus loin dans le testing en utilisant NUnit lors de son développement. L'avenir (prévu avec Visual Studio 2005) est de gérer son développement comme un industriel le fait pour un produit. Le test et la validation d'un produit est une partie indissociable d'une production. C'est donc ce que l'on retrouve dans Visual Studio.NET 2005 dans la notion de Team System. Dans cette nouvelle version, le testeur est un rôle à part entière dans l'industrialisation du développement. si vous souhaitez en savoir plus sur cet outil, je vous invite à consulter les liens suivant : Microsoft Application Center Test 1.0, Visual Studio.NET Edition (US) Tools of the Trade: Application Center Test (US) Load Down: Application Center Test (US) Microsoft Application Test Center (US) Microsoft Application Test Center (US) Application Center Test, VS, and robots.txt (US) SharePoint Stress Testing (US) En vous souhaitant de bons projets de développement. Romelard Fabrice (alias F ) Consultant Technique ILEM