Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Etienne Margraff

Testing the world

Actualités

Liens

Quelques "tips" pour les tests de charge dans Team Test

Vous savez certainement que les fichiers de test de charge utilisés par Visual Studio sont au format XML. Ce que vous ne savez peut être pas c’est qu’on a la possibilité de paramétrer certains aspects d’un test auquels nous n'avons pas accès graphiquement en modifiant « à la main » ces fichiers, directement dans l’XML.

NB : Pour modifier facilement le contenu XML d’un fichier de LoadTest dans Visual Studio, faire « Clic droit » sur l’élément dans l’explorateur de solutions puis « Open With » > « XML Editor ». Double cliquez sur l’élément dans l’explorateur de solutions pour ré-ouvrez le en mode graphique.

Globalement, un fichier XML de test de charge est structuré de la même manière que ce que l’on retrouve au niveau de l’interface graphique d’édition : en 3 sections (Scénarios, CountersSets, RunConfigurations).

Ce billet est une liste non exhaustive des petites modifications que l’on peut faire, et que je trouve utiles.

1)      Adapter le Thinktime au niveau des scénarios de charge

Lorsque l’on utilise la notion « Thinktime » dans un test de charge, on a 2 modes disponibles :

-          La distribution réelle, pour laquelle les agents vont simuler le temps de réflexion tel qu’il a été enregistré

-          La distribution « normale » pour laquelle on aura un temps de réflexion légèrement varié à chaque requête.

Cette légère variation du mode de distribution normale est définie dans le fichier de description XML. On retrouvera donc un nœud ThinkProfile dans lequel on va pouvoir modifier le maximum de variation qu’on pourra avoir sur chaque thinktime enregistré.

<ThinkProfile Value="0.2" Pattern="NormalDistribution" />

Par défaut la valeur est de 0.2 secondes, a vous de le modifier selon vos besoins.

2)      Ajouter un nouveau type de navigateur

Qu’est ce qu’un type de navigateur à simuler ? Tout simplement un ensemble de variables d’entête http à envoyer au serveur.

Si on s’intéresse à celle d’Internet Explorer 7, on peut voir ceci :

<BrowserProfile Percentage="100">

<Browser Name="Internet Explorer 7.0">

<Headers>

<Header Name="User-Agent" Value="Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)" />

<Header Name="Accept" Value="*/*" />

<Header Name="Accept-Language" Value="{{$IEAcceptLanguage}}" />

<Header Name="Accept-Encoding" Value="GZIP" />

</Headers>

</Browser>

</BrowserProfile>

On peut donc très facilement personnaliser un type de navigateur en simulant un Internet Explorer 7 qui n’accepterait que le français en langage. La variable de contexte {{$IEAcceptLanguage}} est liée automatiquement à la configuration de votre navigateur local. On peut donc très bien imaginer modifier ceci et saisir en dur ce que l’on veut :

<Header Name="Accept-Language" Value="fr-FR" />

 

On peut bien entendu imaginer tout autre type de modification, voir l’ajout d’un type de navigateur non proposé par défaut.

3)      Ajouter un nouveau type de réseau

De la même manière que dans le cas du type de navigateur simulé, le type de réseau est modifiable directement via le fichier XML.

Qu’est-ce qu’un type de réseau ? Tout simplement une vitesse de transfert.

<NetworkProfile Percentage="100">

<Network Name="LAN" BandwidthInKbps="0" />

</NetworkProfile>

On remarque ici que 0 signifie illimité. On peut donc très facilement modifier cette valeur pour obtenir exactement le débit que l’on veut simuler.

4)      Sauvegarder un set de compteurs

Une opération récurrente et assez rébarbative lorsque l’on effectue des tests de charge est de créer les sets de compteurs que l’on va vouloir suivre tout au long du test. D’autant plus que ces sets sont très souvent les mêmes en fonction du type d’application que l’on charge.

Via l’édition XML pas de problème ! On peut très facilement sauvegarder dans un fichier texte ses sets de compteurs et les réutiliser dans n’importe quel autre test en les copiant directement dans l’XML.

<CounterSet Name="IIS" CounterSetType="IIS">

      <CounterCategories>

        <CounterCategory Name="Network Interface">

          <Counters>

            <Counter Name="Bytes Received/sec" />

            <Counter Name="Bytes Sent/sec" />

          </Counters>

          <Instances>

            <Instance Name="*" />

          </Instances>

        </CounterCategory>

      </CounterCategories>

      <DefaultCountersForAutomaticGraphs>

        <DefaultCounter CategoryName=" Network Interface " CounterName="Available MBytes" InstanceName="" GraphName="" />

      </DefaultCountersForAutomaticGraphs>

    </CounterSet>

On remarque au passage que c’est à cet endroit que sont définis les graphiques par défaut, donc si vous sauvegardez un set de compteurs, vous sauvegardez sa présentation également !

On peut évidemment modifier d’autres paramètres directement dans le fichier XML mais la plupart de ces modifications peuvent également être faites via l’interface graphique.

Une dernière chose : Il existe des templates par défaut qui sont ceux présents lors de la création d’un nouveau test de charge, notamment pour les sets de compteurs et les types de navigateurs/réseaux. Vous pouvez facilement modifier ces templates en modifiant les fichiers contenant les « morceaux » d’XML. Ils sont situés ici : <root>:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\Templates\LoadTest dans les répertoires « Browsers », « CounterSets », « Networks ».

En espérant que tout ceci pourra vous être utile ! :-)

.Dispose() ;

 

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :
Posted: mardi 1 juillet 2008 11:13 par Etienne Margraff

Commentaires

Pas de commentaires

Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- Le nouveau Gojira, c’est pour lundi… par CoqBlog le il y a 49 minutes

- SharePoint : nouvel article sur la mise en place des Scopes dans MOSS Searchs par Blog Technique de Romelard Fabrice le il y a 8 heures et 16 minutes

- Hello CS par Le Blog de julz le il y a 13 heures et 42 minutes

- MSDN/TechNet/Microsoft Days Tour 2008 à Lille les 13 et 14 Octobre ! par RedoBlog - The .NET Gentleman !!! le il y a 16 heures et 32 minutes

- MVC Pratique #07 - Un projet concret et le transfert des objets avec les ModelBinders par #Rui le 10-09-2008, 23:39

- SQL Server 2008 : Certifié - TS Admin (70-432) par SQL Server vu par Christian Robert le 10-09-2008, 10:58

- [WPF] Comment changer la couleur utilisée pour sélectionner les éléments d’un ItemsControl ? par Thomas Lebrun le 10-09-2008, 10:49

- Hello World! par Hamid's Place le 10-08-2008, 23:38

- SQL Profiler - Configuration pour un développeur - tracer les requêtes SQL de votre application par Atteint de JavaScriptite Aiguë [Cyril Durand] le 10-08-2008, 15:52

- Monitoring et Patron de méthode par Le blog de Marc Ranchin le 10-08-2008, 10:22