Les tags qui nous intéressent le plus sont :
< NumThreadsPerSection> : spécifie combien de threads concurrent vont exécuter le test.
< LotSizePerInterval> : spécifie combien de messages seront envoyés au port de destination dans chaque lot
< StopMode> : spécifie les conditions d'arrêt par défaut pour l’ensemble des tâches Dans ma configuration, je veux que LoadGen 2007 envoie 4000 messages mais s'arrête après 1 heure dans tous les cas.
< Transport> : permet de préciser le protocole à utiliser Dans notre cas on utilise l’adapteur fichier. LoadGen supporte de nombreux protocoles tels que WCF, SOAP, HTTP .....
Dans le fichier, nous trouvons ensuite un élément appelé « section ». Cet élement décrit les tâches à exécuter par LoadGen. Parmi les possibilités qui nous sont offertes pour générer les messages à soumettre, nous avons le choix entre un système que je caractériserai de « statique » et un modèle dynamique. Dans le modèle statique, on fourni à loadgen le chemin d’accès vers un fichier à utiliser pour toutes les soumissions. Dans le modèle dynamique, il est possible de préciser à partir d’un modèle de paramètres, comment créer des messages personnalisés. On parlera suivant le modèle utilisé, de messages statiques ou dynamiques. Je montrerai plus tard comment configurer un générateur de message (messages dynamiques).
Dans tous les cas la première étape consiste à créer un modèle de message au format attendu par l’orchestration. Une fois cette étape effectuée, vous indiquez le chemin d’accès complet à ce fichier dans la balise <Section/SrcFilePath>. Ensuite, nous devons bien évidemment fournir le répertoire dans lequel les messages doivent être générés Ceci s’effectue grâce à la balise <Section/paramètres/DtsFilepath>. Dans notre cas, il s’agit du répertoire « POIn » .
Voici une copie d’écran du message qui va servir de modèle pour la génération. Vous pouvez constater qu’il s’agit d’une commande au format attendu par l’orchestration.

Une autre balise importante dans l'élément section est la balise « MessageCreator ». Ici nous avons plusieurs paramètres à préciser :
< Mode> : spécifie le comportement (synchrone ou asynchrone) de l’opération, vous pouvez trouvez plus de détails dans la documentation de LoadGen.
< SleepInterval> : spécifie en millisecondes le délai entre chaque génération de lot de messages.
< TemplateFilePath> : le fichier de configuration pour la génération dynamique de message. Ce fichier sera utilisé par le composant de création de message indiqué dans la balise <assembly>. Comme vous pouvez voir dans la copie d’écran suivante,

Dans ce fichier, nous définissons les types et les valeurs de chaque champ de notre modèle pour lesquels nous souhaitons générer dynamiquement le contenu. Ceci fait par la création d’une balise <Field> pour chacun des champs concernés.
LoadGen générera alors des valeurs pour chacun de ces champs en respectant le type, les valeurs minimales et maximales. Il est également possible de paramétrer le champs pour ne pas générer de doublons
De plus, nous pouvons également fournir une liste de valeurs à utiliser pour un champ donné. Dans notre cas les valeurs de « CustID » sont fixées par une liste Pour ce faire, J'ai créé un fichier de données appelé CustData.txt où j'ai écrit quelques numéros des comptes client factices que je veux utiliser dans mes messages. Les données sont séparées par un caractère pipe(« | »). Il ne nous reste plus qu’à préciser à l’aide de la balise <InputFilepath> où est le fichier contenant les valeurs à utiliser. Voici comment le fichier de données se présente :

Une fois que tous ces fichiers sont configurés, vous pouvez démarrer le test de charge en lançant en ligne de commande :
C:\Program Files\LoadGen\Bins>LoadGenConsole "E:\Projects\FileToFileLG_MessageCreator.xml"
Vous devriez voir sur l’écran des indicateurs de progression de test et un message de fin de test. La première chose à noter ici est le taux affiché sur l'écran qui est un premier indicateur significatif.

Ma plateforme Biztalk 2006 R2 fonctionne à l'intérieur d'une machine virtuelle sur un serveur quadri-cœur, avec 4Go de RAM (dont 1Go alloué à la VM Biztalk). Le taux moyen d’envoi des messages est de 428 messages par seconde pour ce premier essai.
Bien évidemment, Il est très intéressant, pendant la simulation de charge, d'observer/enregistrer les compteurs de performance appropriés.
Parmi les autres lectures, je vous conseille un autre article à propos de LoadGen qui décrit étape par étape un test de charge en s’appuyant sur un adaptateur WCF
http://connectedthoughts.wordpress.com/2007/11/05/loadgen-2007-and-a-simple-biztalk-wcf-test/
Enfin, je voudrais mentionner que les copies d’écran ont été réalisés avec un outil open source et gratuit appelé Cropper, écrit par Brian Scott en C# : C’est un magnifique petit outil, facile à installer et à utiliser.