Partager via


Comment : créer un complément Visual Studio pour la visionneuse des résultats des tests de performances de site Web

Cette rubrique s'applique à :

Visual Studio Ultimate

Visual Studio Premium

Visual Studio Professional 

Visual Studio Express

La rubrique s'applique La rubrique ne s'applique pas La rubrique ne s'applique pas La rubrique ne s'applique pas

Vous pouvez étendre l'interface utilisateur de l'Afficheur de résultats de test de performances Web à l'aide des espaces de noms suivants :

Vous devez également ajouter une référence à LoadTestPackage.dll, qui est situé dans le dossier %ProgramFiles%\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies.

  • Pour étendre l'interface utilisateur de l'Afficheur de résultats de test de performances Web, vous devez créer un complément Visual Studio et un contrôle utilisateur. Les procédures suivantes expliquent comment créer le complément et le contrôle utilisateur, et comment implémenter les classes nécessaires pour étendre l'interface utilisateur de l'Afficheur de résultats de test de performances Web.

Créer ou ouvrir une solution contenant une application Web ASP.NET et un projet de test

Pour préparer l'extension de l'Afficheur de résultats de test de performances Web

Créer un complément Visual Studio

Un complément est une DLL compilée qui s'exécute dans l'environnement de développement intégré (IDE) de Visual Studio. Sa compilation contribue à protéger votre propriété intellectuelle et améliore les performances. Même si vous pouvez créer des compléments manuellement, il est toutefois plus facile d'utiliser l'Assistant Complément. L'Assistant crée un complément fonctionnel de base que vous pouvez exécuter immédiatement après sa création. Une fois que l'Assistant Complément a généré le programme de base, vous pouvez y ajouter du code et le personnaliser.

L'Assistant Complément vous permet de fournir un nom complet et une description de votre complément. Ils s'afficheront dans le Gestionnaire de compléments. Vous pouvez indiquer à l'Assistant de générer un code qui ajoute au menu Outils une commande permettant d'ouvrir le complément. Vous pouvez également choisir d'afficher une boîte de dialogue À propos de personnalisée pour votre complément. Une fois l'Assistant terminé, votre nouveau projet n'a qu'une classe, qui implémente le complément. Cette classe est appelée Connect.

Vous utiliserez le Gestionnaire de compléments à la fin de cette rubrique.

Pour plus d'informations, consultez Création de compléments et d'Assistants.

Pour créer un complément en utilisant l'Assistant Complément

  1. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur la solution, cliquez sur Ajouter, puis sélectionnez Nouveau projet.

    La boîte de dialogue Nouveau projet s'affiche.

  2. Sous Modèles installés, développez Autres types de projets et sélectionnez Extensibilité.

  3. Dans la liste des modèles, sélectionnez Complément Visual Studio.

  4. Sous Nom, tapez un nom pour le complément. Par exemple, WebPerfTestResultsViewerAddin.

  5. Cliquez sur OK.

    L'Assistant Complément Visual Studio démarre.

  6. Cliquez sur Suivant.

  7. Sur la page Sélectionner un langage de programmation, sélectionnez le langage de programmation que vous souhaitez utiliser pour écrire le complément.

    Notes

    Pour l'exemple de code, cette rubrique utilise Visual C#.

  8. Sur la page Sélectionner une application hôte, sélectionnez Microsoft Visual Studio 2010 et désactivez Microsoft Visual Studio 2010 Macros.

  9. Cliquez sur Suivant.

  10. Entrez le nom et la description de votre complément sur la page Entrer un nom et une description.

    Une fois le complément créé, ses nom et description s'affichent dans la liste Compléments disponibles dans le Gestionnaire de compléments. Indiquez suffisamment d'informations dans la description de votre complément afin que les utilisateurs puissent connaître l'utilité de votre complément, son fonctionnement, etc.

  11. Cliquez sur Suivant.

  12. Sur la page Choisir les options du complément, sélectionnez Je souhaite que mon complément soit chargé en même temps que l'application hôte.

  13. Désactivez les autres cases à cocher.

  14. Sur la page Choisir les informations contenues dans « À propos de », vous pouvez indiquer si vous voulez que les informations relatives à votre complément apparaissent dans une boîte de dialogue À propos de. Si vous souhaitez que les informations soient affichées, activez la case à cocher Oui, je souhaite que mon complément propose une boîte de dialogue « À propos de ».

    Les informations que vous pouvez ajouter dans la boîte de dialogue À propos de de Visual Studio incluent notamment le numéro de version, des informations relatives à la prise en charge, des données relatives à la licence, etc.

  15. Cliquez sur Suivant.

  16. Vous pouvez vérifier les options sélectionnées sur la page Résumé. Si vous êtes satisfait, cliquez sur Terminer pour créer le complément. Pour effectuer une modification, cliquez sur le bouton Précédent.

    La nouvelle solution et le nouveau projet sont créés. L'éditeur de code affiche le fichier Connect.cs pour le nouveau complément.

    Vous ajouterez le code au fichier Connect.cs après la procédure suivante, qui crée un contrôle utilisateur qui sera référencé par ce projet WebPerfTestResultsViewerAddin.

Après avoir créé un complément, vous devez l'inscrire auprès de Visual Studio avant de l'activer dans le Gestionnaire de compléments. Pour cela, vous devez utiliser un fichier XML avec l'extension de fichier .addin.

Ce fichier .addin contient les informations nécessaires à Visual Studio pour afficher le complément dans le Gestionnaire de compléments. Lors de son démarrage, Visual Studio recherche les fichiers .addin disponibles à l'emplacement des fichiers .addin. Si des fichiers sont trouvés, Visual Studio lit le fichier XML et transmet au Gestionnaire de compléments les informations dont il a besoin pour démarrer le complément lorsqu'un utilisateur clique dessus.

Le fichier .addin est créé automatiquement lors de la création d'un complément à l'aide de l'Assistant Complément.

Pour plus d'informations, consultez Inscription d'un complément.

Emplacements du fichier .addin

Deux copies du fichier .addin sont créées automatiquement par l'Assistant Complément, comme suit :

Emplacement du fichier .addin

Emplacement du fichier .Dll

Description

Dossier de projet racine

\Documents\Visual Studio 2010\Projects\MyAddin1\MyAddin1\

Chemin local (MyAddin1.dll)

Utilisé pour le déploiement du projet de complément. Incluse dans le projet pour des modifications facilitées. Chemin d'accès local pour un déploiement de style XCopy.

Dossier des compléments

\Documents\Visual Studio 2010\Addins\

ou

Emplacement des documents partagés\Addins\

Dossier de débogage du projet

(Par exemple, \ Documents\Visual Studio 2010

Projects\MyAddin1\MyAddin1\bin\)

Utilisé pour exécuter le complément dans l'environnement de débogage. Doit toujours pointer sur le chemin de sortie de la configuration de build actuelle.

Créer un projet de bibliothèque de contrôles Windows Forms

Le complément Visual Studio créé dans les procédures précédentes référence un projet de bibliothèque de contrôles Windows Forms pour créer une instance d'une classe UserControl.

Pour plus d'informations, consultez contrôles Windows Forms.

Pour créer un contrôle à utiliser dans l'Afficheur des résultats de test Web

  1. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur la solution, cliquez sur Ajouter, puis sélectionnez Nouveau projet.

    La boîte de dialogue Nouveau projet s'affiche.

  2. Sous Modèles installés, développez Visual Basic ou Visual C#, puis sélectionnez Windows.

    Notes

    Pour l'exemple de code, cette rubrique utilise Visual C#.

  3. Dans la liste des modèles, sélectionnez Bibliothèque de contrôles Windows Forms.

  4. Sous Nom, tapez un nom pour le complément. Par exemple, WebPerfTestResultsViewerControl.

  5. Cliquez sur OK.

    Le projet de bibliothèque de contrôles Windows Forms WebPerfTestResultsViewerControl est ajouté dans l'Explorateur de solutions et UserControl1.cs est affiché en mode Design.

  6. Depuis la boîte à outils, faites glisser un DataGridView sur la surface de userControl1.

  7. Cliquez sur le glyphe de balise d'action (Glyphe de balise active) dans le coin supérieur droit de DataGridView et suivez ces étapes :

    1. Cliquez sur Ancrer dans le conteneur parent.

    2. Désactivez les cases à cocher Activer l'ajout, Activer la modification, Activer la suppression et Activer la réorganisation des colonnes.

    3. Cliquez sur Ajouter une colonne.

      La boîte de dialogue Ajouter une colonne s'affiche.

    4. Dans la liste déroulante Type, sélectionnez DataGridViewTextBoxColumn.

    5. Effacez le texte « Column1 » dans la zone Texte de l'en-tête.

    6. Cliquez sur Ajouter.

    7. Cliquez sur Fermer.

  8. Dans la fenêtre Propriétés, remplacez la propriété (Name) de DataGridView par resultControlDataGridView.

  9. Cliquez avec le bouton droit sur l'aire de conception et sélectionnez Afficher le code.

    Le fichier UserControl1.cs s'affiche dans l'éditeur de code.

  10. Remplacez le nom UserContro1 de la classe instanciée UserControl par resultControl :

    namespace WebPerfTestResultsViewerControl
    {
        public partial class resultControl : UserControl
        {
            public resultControl()
            {
                InitializeComponent();
            }
    

    Dans la procédure suivante, vous allez ajouter le code au fichier Connect.cs du projet WebPerfTestResultsViewerAddin. Il référencera la classe resultControl.

    Vous ajouterez ultérieurement du code supplémentaire au fichier Connect.cs.

Ajouter du code au projet WebPerfTestResultsViewerAddin

Pour ajouter du code au Complément Visual Studio afin d'étendre l'Afficheur des résultats de test Web

  1. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le nœud Références du projet WebPerfTestResultsViewerAddin, puis sélectionnez Ajouter une référence.

  2. Dans la boîte de dialogue Ajouter une référence, cliquez sur l'onglet .NET.

  3. Faites défiler vers le bas et sélectionnez Microsoft.VisualStudio.QualityTools.WebTestFramework et System.Windows.Forms.

  4. Cliquez sur OK.

  5. Cliquez à nouveau avec le bouton droit sur le nœud Références et sélectionnez Ajouter une référence.

  6. Dans la boîte de dialogue Ajouter une référence, cliquez sur l'onglet Parcourir.

  7. Cliquez sur Regarder dans dans la liste déroulante, naviguez jusqu'à %ProgramFiles%\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies et sélectionnez le fichier Microsoft.VisualStudio.QualityTools.LoadTestPackage.dll.

  8. Cliquez sur OK.

  9. Cliquez avec le bouton droit sur le nœud du projet WebPerfTestResultsViewerAddin et sélectionnez Ajouter une référence.

  10. Dans la boîte de dialogue Ajouter une référence, cliquez sur l'onglet Projets.

  11. Sous Nom du projet, sélectionnez le projet WebPerfTestResultsViewerControl, puis cliquez sur OK.

  12. Si le fichier Connect.cs n'est pas ouvert, dans l'Explorateur de solutions, cliquez avec le bouton droit sur le fichier Connect.cs dans le projet WebPerfTestResultsViewerAddin et sélectionnez Afficher le code.

  13. Dans le fichier Connect.cs, ajoutez les instructions Using suivantes :

    using System.IO;
    using System.Windows.Forms;
    using System.Collections.Generic;
    using Microsoft.VisualStudio.TestTools.LoadTesting;
    using Microsoft.VisualStudio.TestTools.WebTesting;
    using WebPerfTestResultsViewerControl;
    
  14. Faites défiler le fichier Connect.cs jusqu'en bas. Vous devez ajouter une liste de GUID pour le UserControl, au cas où plusieurs instances de l'Afficheur de résultats de test de performances Web sont ouvertes. Vous ajouterez ultérieurement du code pour utiliser cette liste.

    Une deuxième liste de chaînes est utilisée dans la méthode OnDiscconection que vous coderez ultérieurement.

            private DTE2 _applicationObject;
            private AddIn _addInInstance;
    
            private Dictionary<Guid, List<UserControl>> m_controls = new Dictionary<Guid, List<UserControl>>();
            private List<string> temporaryFilePaths = new List<string>();
    
  15. Le fichier Connect.cs instancie une classe nommée Connect de la classe IDTExtensibility2. Elle inclut également des méthodes pour l'implémentation du complément Visual Studio. La méthode OnConnection est l'une de ces méthodes. Elle reçoit une notification lorsque le complément est chargé. Dans la méthode OnConnection, vous utiliserez la classe LoadTestPackageExt pour créer votre package d'extensibilité pour l'Afficheur de résultats de test de performances Web. Ajoutez le code suivant à la méthode OnConnection :

    public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom)
                {
                _applicationObject = (DTE2)application;
                _addInInstance = (AddIn)addInInst;
    
                // Create a load test packge extensibility class.
                LoadTestPackageExt loadTestPackageExt = _applicationObject.GetObject("Microsoft.VisualStudio.TestTools.LoadTesting.LoadTestPackageExt") as LoadTestPackageExt;
    
                // Process open windows.
                foreach (WebTestResultViewer webTestResultViewer in loadTestPackageExt.WebTestResultViewerExt.ResultWindows)
                {
                    WindowCreated(webTestResultViewer);
                }
    
                // Create event handlers.
                loadTestPackageExt.WebTestResultViewerExt.WindowCreated += new EventHandler<WebTestResultViewerExt.WindowCreatedEventArgs>(WebTestResultViewerExt_WindowCreated);
                loadTestPackageExt.WebTestResultViewerExt.WindowClosed += new EventHandler<WebTestResultViewerExt.WindowClosedEventArgs>(WebTesResultViewer_WindowClosed);
                loadTestPackageExt.WebTestResultViewerExt.SelectionChanged += new EventHandler<WebTestResultViewerExt.SelectionChangedEventArgs>(WebTestResultViewer_SelectedChanged);
            }
    
  16. Ajoutez le code suivant à la classe Connect pour créer la méthode WebTestResultViewerExt_WindowCreated pour le gestionnaire d'événements loadTestPackageExt.WebTestResultViewerExt.WindowCreated que vous avez ajouté dans la méthode OnConnection et pour la méthode WindowCreated appelée par la méthode WebTestResultViewerExt_WindowCreated.

            void WebTestResultViewerExt_WindowCreated(object sender, WebTestResultViewerExt.WindowCreatedEventArgs e)
            {
                // New control added to new result viewer window.
                WindowCreated(e.WebTestResultViewer);
            }
    
    private void WindowCreated(WebTestResultViewer viewer)
            {
                // Instantiate an instance of the resultControl referenced in the WebPerfTestResultsViewerControl project.
                resultControl resultControl = new resultControl();
    
                // Add to the dictionary of open playback windows.
                System.Diagnostics.Debug.Assert(!m_controls.ContainsKey(viewer.TestResultId));
                List<UserControl> userControls = new List<UserControl>();
                userControls.Add(resultControl);
    
                // Add Guid to the m_control List to manage Result viewers and controls.
                m_controls.Add(viewer.TestResultId, userControls);
    
                // Add tabs to the playback control.
                resultControl.Dock = DockStyle.Fill;
                viewer.AddResultPage(new Guid(), "Sample", resultControl);
            }
    
  17. Ajoutez le code suivant à la classe Connect pour créer la méthode WebTestResultViewer_SelectedChanged pour le gestionnaire d'événements loadTestPackageExt.WebTestResultViewerExt.SelectionChanged que vous avez ajouté dans la méthode OnConnection :

            void WebTestResultViewer_SelectedChanged(object sender, WebTestResultViewerExt.SelectionChangedEventArgs e)
            {
                foreach (UserControl userControl in m_controls[e.TestResultId])
                {
                    // Update the userControl in each result viewer.
                    resultControl resultControl = userControl as resultControl;
                    if (resultControl != null)
                        // Call the resultControl's Update method (This will be added in the next procedure).
                        resultControl.Update(e.WebTestRequestResult);
                }
            }
    
  18. Ajoutez le code suivant à la classe Connect pour créer la méthode WebTesResultViewer_WindowClosed pour le gestionnaire d'événements pour le loadTestPackageExt.WebTestResultViewerExt.WindowClosed que vous avez ajouté dans la méthode OnConnection :

            void WebTesResultViewer_WindowClosed(object sender, WebTestResultViewerExt.WindowClosedEventArgs e)
            {
                if (m_controls.ContainsKey(e.WebTestResultViewer.TestResultId))
                {
                    m_controls.Remove(e.WebTestResultViewer.TestResultId);
                }
            }
    

    Maintenant que le code a été achevé pour le complément Visual Studio, vous devez ajouter la méthode Update au resultControl dans le projet WebPerfTestResultsViewerControl.

Ajouter du code au WebPerfTestResultsViewerControl

Pour plus d'informations, consultez Concepts de base du développement de contrôles Windows Forms.

Pour ajouter du code au contrôle utilisateur

  1. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le nœud du projet WebPerfTestResultsViewerControl, puis sélectionnez Propriétés.

  2. Sélectionnez l'onglet Application, cliquez sur la liste déroulante Framework cible, sélectionnez .NET Framework 4, puis fermez la page Propriétés.

    Cette opération est nécessaire pour prendre en charge les références de dll nécessaires à l'extension de l'Afficheur des résultats des tests de performances Web.

  3. Dans l'Explorateur de solutions, dans le projet WebPerfTestResultsViewerControl, cliquez avec le bouton droit sur le nœud Références, puis sélectionnez Ajouter une référence.

  4. Dans la boîte de dialogue Ajouter une référence, cliquez sur l'onglet .NET.

  5. Faites défiler la page et sélectionnez Microsoft.VisualStudio.QualityTools.WebTestFramework.

  6. Cliquez sur OK.

  7. Dans le fichier UserControl1.cs, ajoutez les instructions Using suivantes :

    using Microsoft.VisualStudio.TestTools.WebTesting;
    using Microsoft.VisualStudio.TestTools.WebTesting.Rules;
    
  8. Ajoutez la méthode Update qui est appelée et passée au WebTestRequestResult à partir de la méthode WebPerfTestResultsViewerAddin WebTestResultViewer_SelectedChanged du fichier Connect.cs. La méthode Update remplit le contrôle DataGridView avec différentes propriétés qui lui sont passées dans le WebTestRequestResult.

    public void Update(WebTestRequestResult WebTestResults)
            {
                // Clear the DataGridView when a request is selected.
                resultControlDataGridView.Rows.Clear();
                // Populate the DataGridControl with properties from the WebTestResults.
                this.resultControlDataGridView.Rows.Add("Request: " + WebTestResults.Request.Url.ToString());
                this.resultControlDataGridView.Rows.Add("Response: " + WebTestResults.Response.ResponseUri.ToString());
                foreach (RuleResult ruleResult in WebTestResults.ExtractionRuleResults)
                {
                    this.resultControlDataGridView.Rows.Add("Extraction rule results: " + ruleResult.Message.ToString());
                }
                foreach (RuleResult ruleResult in WebTestResults.ValidationRuleResults)
                {
                    this.resultControlDataGridView.Rows.Add("Validation rule results: " + ruleResult.Message.ToString());
                }
                foreach (WebTestError webTestError in WebTestResults.Errors)
                {
                    this.resultControlDataGridView.Rows.Add("Error: " + webTestError.ErrorType.ToString() + " " + webTestError.ErrorSubtype.ToString() + " " + webTestError.ExceptionText.ToString());
                }
            }
    

Générer la solution WebPerfTestResultsViewerAddin

Pour générer la solution

  • Dans le menu Générer, sélectionnez Générer la solution.

Enregistrer le complément WebPerfTestResultsViewerAddin

Pour enregistrer le complément à l'aide du Gestionnaire de compléments

  1. Dans le menu Outils, sélectionnez Gestionnaire de compléments.

  2. La boîte de dialogue Gestionnaire de compléments s'affiche.

  3. Activez la case à cocher pour le complément WebPerfTestResultsViewerAddin dans la colonne Compléments disponibles et désactivez les cases à cocher situées sous les colonnes Démarrage et Ligne de commande.

  4. Cliquez sur OK.

    Pour plus d'informations, consultez Comment : contrôler des compléments avec le Gestionnaire de compléments.

Exécuter le test de performances de site Web à l'aide du complément WebPerfTestResultsViewerAddin

Pour exécuter le nouveau complément VS pour l'Afficheur des résultats de test Web

  1. Exécutez votre test de performances de site Web. Le nouvel onglet du complément WebPerfTestResultsViewerAddin, intitulé Exemple, s'affiche dans l'Afficheur des résultats des tests de performances Web.

  2. Cliquez sur l'onglet pour consulter les propriétés présentées dans le contrôle DataGridView.

Sécurité

Pour améliorer la sécurité en empêchant les compléments nuisibles de s'activer automatiquement, Visual Studio fournit différents paramètres dans une page Options Outils nommée Sécurité des compléments/macros.

De plus, cette page d'options vous permet de spécifier les dossiers dans lesquels Visual Studio recherche les fichiers d'enregistrement .AddIn. Cela améliore la sécurité en vous permettant de limiter les emplacements dans lesquels les fichiers d'inscription .AddIn peuvent être lus. Cela permet d'éviter que les fichiers .AddIn malveillants soient involontairement utilisés.

Paramètres de sécurité des compléments

Les paramètres de la Add-in/Macros Security, Environment, Options Dialog Box en rapport avec sécurité additionnelle interne sont les suivants :

  • Autoriser le chargement des composants de compléments.   Activé par défaut. Lorsque ce paramètre est activé, le chargement des compléments est autorisé dans Visual Studio. Lorsqu'il est désactivé, le chargement des compléments est interdit dans Visual Studio.

  • Autoriser le chargement des composants de compléments à partir d'une URL.   Non activé par défaut. Lorsque ce paramètre est activé, les compléments sont autorisés à être chargés à partir de sites Web externes. Lorsqu'il est désactivé, le chargement des compléments distants est interdit dans Visual Studio. Si, pour une raison ou une autre, un complément ne peut pas se charger, il ne peut pas l'être non plus depuis le Web. Ce paramètre contrôle uniquement le chargement de la DLL complémentaire. Les fichiers d'enregistrement .Addin doivent toujours se trouver sur le système local.

  • Pour plus d'informations, consultez Sécurité des compléments.

Voir aussi

Tâches

Comment : contrôler des compléments avec le Gestionnaire de compléments

Procédure pas à pas : débogage d'un projet Complément

Référence

UserControl

Microsoft.VisualStudio.TestTools.LoadTesting

Microsoft.VisualStudio.TestTools.WebTesting

Microsoft.VisualStudio.TestTools.WebTesting.Rules

UserControl

DataGrid

Concepts

Inscription d'un complément

Graphique Modèle d'objet Automation

Événements dans les contrôles Windows Forms

Autres ressources

Création et utilisation de plug-ins personnalisés pour les tests de charge et les tests de performances de site Web

Propriétés dans les contrôles Windows Forms

Développement de contrôles Windows Forms personnalisés avec le .NET Framework