Comment : créer un plug-in de test de chargeHow to: Create a Load Test Plug-In

Vous pouvez créer un plug-in de test de charge pour exécuter du code à différents stades de l'exécution du test de charge.You can create a load test plug-in to run code at different times while the load test is running. Vous pouvez créer un plug-in pour développer ou modifier la fonctionnalité intégrée du test de charge.You create a plug-in to expand upon or modify the built in functionality of the load test. Par exemple, vous pouvez coder un plug-in de test de charge pour définir ou modifier le modèle de test de charge pendant l'exécution du test de charge.For example, you can code a load test plug-in to set or modify the load test pattern while the load test is running. Pour cela, vous devez créer une classe qui hérite de l'interface de ILoadTestPlugin.To do this, you must create a class that inherits the ILoadTestPlugin interface. Cette classe doit implémenter la méthode Initialize de cette interface.This class must implement the Initialize method of this interface. Pour plus d'informations, consultez ILoadTestPlugin.For more information, see ILoadTestPlugin.

Note

Vous pouvez également créer des plug-ins pour les tests de performances de site web.You can also create plug-ins for Web performance tests. Pour plus d’informations, consultez Guide pratique pour créer un plug-in de test de performances web.For more information, see How to: Create a Web Performance Test Plug-In

Pour créer un plug-in de test de charge à l'aide de Visual C#To create a Load Test Plug-in by using Visual C#

  1. Ouvrez un projet de test de performances de site web et de charge qui contient un test de performances de site web.Open a Web performance and load test project that contains a Web performance test.

  2. Ajoutez un test de charge au projet de test et configurez-le pour exécuter un test de performances de site Web.Add a load test to the test project and configure it to run a Web performance test.

    Pour plus d’informations, consultez Guide pratique pour créer un projet de test de charge.For more information, see Quickstart: Create a load test project.

  3. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur la solution et sélectionnez Ajouter, puis choisissez Nouveau projet.In Solution Explorer, right-click on the solution and select Add and then choose New Project.

    La boîte de dialogue Ajouter un nouveau projet s’affiche.The Add New Project dialog box is displayed.

  4. Sous Modèles installés, sélectionnez Visual C#.Under Installed Templates, select Visual C#.

  5. Dans la liste des modèles, sélectionnez Bibliothèque de classes.In the list of templates, select Class Library.

  6. Dans la zone de texte Nom, tapez le nom de votre classe.In the Name text box, type a name for your class.

  7. Cliquez sur OK.Choose OK.

  8. Le nouveau projet de bibliothèque de classes est ajouté à l'Explorateur de solutions et la nouvelle classe s'affiche dans l'éditeur de code.The new class library project is added to Solution Explorer and the new class appears in the Code Editor.

  9. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le dossier Références de la nouvelle bibliothèque de classes, puis sélectionnez Ajouter une référence.In Solution Explorer, right-click the References folder in the new class library and select Add Reference.

  10. La boîte de dialogue Ajouter une référence s’affiche.The Add Reference dialog box is displayed.

  11. Choisissez l’onglet .NET, faites défiler la page, puis sélectionnez Microsoft.VisualStudio.QualityTools.LoadTestFramework.Choose the .NET tab, scroll down, and then select Microsoft.VisualStudio.QualityTools.LoadTestFramework.

  12. Cliquez sur OK.Choose OK.

    La référence à Microsoft.VisualStudio.QualityTools.LoadTestFramework est ajoutée au dossier Référence dans l’Explorateur de solutions.The reference to Microsoft.VisualStudio.QualityTools.LoadTestFramework is added to the Reference folder in Solution Explorer.

  13. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le nœud supérieur du projet de test de performances web et de charge qui contient le test de charge auquel vous souhaitez ajouter le plug-in de test de charge, puis sélectionnez Ajouter une référence.In Solution Explorer, right-click the top node of the Web performance and load test project that contains the load test to which you want to add the load test plug-in and select Add Reference.

  14. La boîte de dialogue Ajouter une référence s’affiche.The Add Reference dialog box is displayed.

  15. Choisissez l’onglet Projets, puis sélectionnez le projet de bibliothèque de classes.Choose the Projects tab and select the Class Library Project.

  16. Cliquez sur OK.Choose OK.

  17. Dans l'éditeur de code, ajoutez une instruction using pour l'espace de noms Microsoft.VisualStudio.TestTools.LoadTesting.In the Code Editor, add a using statement for the Microsoft.VisualStudio.TestTools.LoadTesting namespace.

  18. Implémentez l'interface ILoadTestPlugin pour la classe créée dans le projet de bibliothèque de classes.Implement the ILoadTestPlugin interface for the class that was created in the Class Library project. Pour un exemple d'implémentation, reportez-vous à la section suivante.See the following Example section for a sample implementation.

  19. Après avoir écrit le code, générez le nouveau projet.After you have written the code, build the new project.

  20. Cliquez avec le bouton droit sur le nœud supérieur du test de charge, puis choisissez Ajouter un plug-in de test de charge.Right-click on the top node of the load test and then choose Add Load Test Plug-in.

    La boîte de dialogue Ajouter un plug-in de test de charge s’affiche.The Add Load Test Plug-in dialog box is displayed.

  21. Sous Sélectionner un plug-in, sélectionnez votre classe du plug-in du test de charge.Under Select a plug-in, select your load test plug-in class.

  22. Dans le volet Propriétés du plug-in sélectionné, définissez les valeurs initiales du plug-in à utiliser au moment de l’exécution.In the Properties for selected plug-in pane, set the initial values for the plug-in to use at run time.

    Note

    Vous pouvez exposer autant de propriétés que vous souhaitez de vos plug-ins ; il suffit de les rendre publics, définissables et d'un type de base, tel qu'un entier, une valeur booléenne ou une chaîne.You can expose as many properties as you want from your plug-ins; just make them public, settable, and of a base type such as Integer, Boolean, or String. Vous pouvez également modifier ultérieurement les propriétés du plug-in de test de performances de site web dans la fenêtre Propriétés.You can also change the Web performance test plug-in properties later by using the Properties window.

  23. Cliquez sur OK.Choose OK.

    Le plug-in est ajouté au dossier Plug-ins de test de charge.The plug-in is added to the Load Test Plug-ins folder.

    Avertissement

    Vous pouvez obtenir une erreur semblable au cas suivant lorsque vous exécutez un test de performances de site web ou un test de charge qui utilise votre plug-in :You might get an error similar to the following when you run a Web performance test or load test that uses your plug-in:

    Échec de la requête : exception dans le <plug-in> événement : Impossible de charger le fichier ou l’assembly '<"Nom du plug-in".dll>, Version=<n.n.n.n>, Culture=neutral, PublicKeyToken=null' ou l’une de ses dépendances. Le système ne parvient pas à localiser le fichier spécifié.Request failed: Exception in <plug-in> event: Could not load file or assembly '<"Plug-in name".dll file>, Version=<n.n.n.n>, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.

    Cela se produit si vous effectuez des modifications du code dans l’un de vos plug-ins et si vous créez une autre version de la DLL (Version=0.0.0.0). Toutefois, le plug-in fait toujours référence à la version du plug-in d’origine.This is caused if you make code changes to any of your plug-ins and create a new DLL version (Version=0.0.0.0), but the plug-in is still referencing the original plug-in version. Pour résoudre ce problème, procédez comme suit :To correct this problem, follow these steps:

    1. Dans votre projet de test de performances de site web et de charge, un message d'avertissement s'affiche dans les références.In your Web performance and load test project, you will see a warning in references. Supprimez et rajoutez la référence à la DLL de votre plug-in.Remove and re-add the reference to your plug-in DLL.
    2. Supprimez le plug-in de votre test ou de l'emplacement approprié, puis rajoutez-le.Remove the plug-in from your test or the appropriate location and then add it back.

ExempleExample

Le code suivant illustre un plug-in de test de charge qui exécute du code personnalisé suite à un événement LoadTestFinished.The following code shows a load test plug-in that runs custom code after a LoadTestFinished event occurs. Si ce code est exécuté sur un agent de test sur un ordinateur distant et si l'agent et le contrôleur de test n'ont pas de service SMTP localhost, le test de charge reste à l'état "En cours" car une boîte de message est ouverte.If this code is run on a test agent on a remote machine and the test agent does not have a localhost SMTP service, the load test will remain in the "In progress" state because a message box will be open.

Note

Le code suivant requiert l'ajout d'une référence à System.Windows.Forms.The following code requires that you add a reference to System.Windows.Forms.

using System;
using Microsoft.VisualStudio.TestTools.LoadTesting;
using System.Net.Mail;
using System.Windows.Forms;

namespace LoadTestPluginTest
{
    public class MyLoadTestPlugin : ILoadTestPlugin
    {
        LoadTest myLoadTest;

        public void Initialize(LoadTest loadTest)
        {
            myLoadTest = loadTest;
            myLoadTest.LoadTestFinished += new
                EventHandler(myLoadTest_LoadTestFinished);
        }

        void myLoadTest_LoadTestFinished(object sender, EventArgs e)
        {
            try
            {
                // place custom code here
                MailAddress MyAddress = new MailAddress("someone@example.com");
                MailMessage MyMail = new MailMessage(MyAddress, MyAddress);
                MyMail.Subject = "Load Test Finished -- Admin Email";
                MyMail.Body = myLoadTest..Name + " has finished.";

                SmtpClient MySmtpClient = new SmtpClient("localhost");
                MySmtpClient.Send(MyMail);
            }

            catch (SmtpException ex)
            {
                MessageBox.Show(ex.InnerException.Message +
                    ".\r\nMake sure you have a valid SMTP.", "LoadTestPlugin", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1);
            }
        }
    }
}

Huit événements sont associés à un test de charge et peuvent être gérés dans le plug-in de test de charge pour exécuter du code personnalisé avec le test de charge.Eight events are associated with a load test that can be handled in the load test plug-in to run custom code with the load test. Voici une liste des événements qui procurent un accès à différentes périodes de la série de tests de charge :The following is a list of the events that provide access to different periods of the load test run:

Voir aussiSee also