Procedura: creare un componente aggiuntivo di Visual Studio per il Visualizzatore risultati test prestazioni Web

È possibile estendere l'interfaccia utente per il Visualizzatore risultati test prestazioni Web utilizzando gli spazi dei nomi seguenti:

Inoltre, è necessario aggiungere un riferimento al file LoadTestPackage.dll che si trova nella cartella %Programmi%\Microsoft Visual Studio 11.0\Common7\IDE\PrivateAssemblies.

  • Per estendere l'interfaccia utente del Visualizzatore risultati test prestazioni Web, è necessario creare un controllo utente e un componente aggiuntivo per Visual Studio.Nelle procedure seguenti viene illustrato come creare il componente aggiuntivo e il controllo utente nonché come implementare le classi necessarie per estendere l'interfaccia utente del Visualizzatore risultati test prestazioni Web.

Requisiti

  • Visual Studio Ultimate

Creare o Aprire una Soluzione contenente un'applicazione Web ASP.NET ed un progetto di test di carico e prestazioni Web

Per preparare l'estensione del Visualizzatore risultati test prestazioni Web

Creare un componente aggiuntivo per Visual Studio

Un componente aggiuntivo è una DLL compilata che viene eseguita all'interno dell'ambiente di sviluppo integrato (IDE, Integrated Development Environment) di Visual Studio.La compilazione garantisce la protezione della proprietà intellettuale e consente il miglioramento delle prestazioni.Sebbene sia possibile creare manualmente componenti aggiuntivi, l'utilizzo della Creazione guidata componente aggiuntivo rende l'operazione molto più semplice.La Creazione guidata componente aggiuntivo consente di generare un componente aggiuntivo di base completamente funzionale che può essere eseguito immediatamente dopo la creazione.Al termine della generazione del programma di base tramite la Creazione guidata componente aggiuntivo, sarà possibile aggiungere codice a tale programma e personalizzarlo.

La procedura guidata del componente aggiuntivo consente di fornire un nome visualizzato e una descrizione per il componente aggiuntivo.Entrambi saranno visualizzati nella finestra di dialogo Gestione componenti aggiuntivi.Facoltativamente, è possibile scegliere di generare automaticamente nella procedura guidata il codice che aggiunge al menu Strumenti un comando per l'apertura del componente aggiuntivo.È inoltre possibile scegliere di visualizzare una finestra Informazioni su personalizzata per il componente aggiuntivo.Al termine della procedura guidata, si disporrà di un nuovo progetto con una sola classe tramite la quale viene implementato il componente aggiuntivo.Tale classe viene denominata Connect.

Si utilizzerà Gestione componenti aggiuntivi alla fine di questo argomento.

Per ulteriori informazioni, vedere Creazione di componenti aggiuntivi e di procedure guidate.

Per creare un componente aggiuntivo utilizzando la Creazione guidata componente aggiuntivo.

  1. In Esplora soluzioni fare clic con il pulsante destro del mouse sulla soluzione, scegliere Aggiungi, quindi Nuovo progetto.

    Verrà visualizzata la finestra di dialogo Nuovo progetto.

  2. In Modelli installati espandere Altri tipi di progetto e selezionare Extensibility.

  3. Nell'elenco dei modelli selezionare Componente aggiuntivo Visual Studio.

  4. In Nome digitare un nome per il componente aggiuntivo.Ad esempio, WebPerfTestResultsViewerAddin.

  5. Scegliere OK.

    Verrà avviata la Creazione guidata componente aggiuntivo di Visual Studio.

  6. Scegliere Avanti.

  7. Nella pagina Selezionare un linguaggio di programmazione selezionare il linguaggio di programmazione che si desidera utilizzare per la compilazione del componente aggiuntivo.

    [!NOTA]

    In questo argomento viene utilizzato Visual C# per il codice di esempio.

  8. Nella pagina Selezionare un'applicazione host, selezionare Visual Studio quindi deselezionare Macro Visual Studio.

  9. Scegliere Avanti.

  10. Digitare il nome e la descrizione del componente aggiuntivo nella pagina Specificare un nome e una descrizione.

    Dopo aver creato il componente aggiuntivo, il nome e la descrizione corrispondenti verranno visualizzati nell'elenco Componenti aggiuntivi disponibili nella finestra di dialogo Gestione componenti aggiuntivi.Aggiungere alla descrizione del componente aggiuntivo delle informazioni sufficientemente dettagliate che consentano agli utenti di apprenderne il comportamento, il funzionamento e così via.

  11. Scegliere Avanti.

  12. Nella pagina Scegliere le opzioni del componente aggiuntivo selezionare Carica il componente aggiuntivo all'avvio dell'applicazione host.

  13. Deselezionare le caselle di controllo rimanenti.

  14. Nella pagina Scelta della finestra 'Informazioni su' è possibile specificare se si desidera che le informazioni sul componente aggiuntivo vengano visualizzate in una finestra di dialogo Informazioni su.Se si desidera che le informazioni vengano visualizzate selezionare la casella di controllo Sì, rendi disponibile la finestra 'Informazioni su' per il componente aggiuntivo.

    Tra le informazioni che è possibile aggiungere alla finestra Informazioni su di Visual Studio sono inclusi il numero di versione, i dettagli sul supporto, i dati della licenza e così via.

  15. Scegliere Avanti.

  16. Le opzioni selezionate vengono visualizzate nella pagina Riepilogo per consentirne la verifica.Se il risultato è soddisfacente, selezionare Fine per creare il componente aggiuntivo.Se si desidera apportare delle modifiche, fare clic sul pulsante Indietro.

    Vengono creati la nuova soluzione e il progetto e il file Connect.cs per il nuovo componente aggiuntivo viene visualizzato nell'editor di codice.

    Verrà aggiunto codice al file Connect.cs dopo la procedura riportata di seguito mediante la quale viene creato un controllo utente a cui farà riferimento questo progetto WebPerfTestResultsViewerAddin.

Dopo aver creato un componente aggiuntivo, è necessario registrarlo con Visual Studio affinché possa essere attivato in Gestione componenti aggiuntivi.Questa operazione viene eseguita tramite un file XML con estensione addin.

In questo file con estensione addin sono incluse le informazioni richieste da Visual Studio per visualizzare il componente aggiuntivo in Gestione componenti aggiuntivi.All'avvio, Visual Studio ricerca nel percorso dei file con estensione addin eventuali file con estensione addin disponibili.Se ne viene individuato uno, viene letto il file XML e a Gestione componenti aggiuntivi vengono fornite le informazioni necessarie per l'avvio del componente aggiuntivo quando fatto clic su quest'ultimo.

Il file con estensione addin viene creato automaticamente quando si crea un componente aggiuntivo utilizzando la Creazione guidata componente aggiuntivo.

Per ulteriori informazioni, vedere Registrazione di un componente aggiuntivo.

Ff458704.collapse_all(it-it,VS.110).gifPercorsi dei file del componente aggiuntivo

Tramite Creazione guidata componente aggiuntivo vengono create automaticamente due copie del file con estensione addin, come segue:

Percorso del file con estensione addin

Percorso del file con estensione dll

Descrizione

Cartella radice del progetto

\Documenti\Visual Studio 11\Projects\MyAddin1\MyAddin1\

Percorso locale (MyAddin1.dll)

Utilizzato per la distribuzione del progetto del componente aggiuntivo.Incluso nel progetto per facilitare le modifiche e impostato sul percorso locale per la distribuzione di tipo XCopy.

Cartella del componente aggiuntivo

\Documenti\Visual Studio 11\Addins\

In alternativa

Percorso documenti condivisi\Addins\

Cartella di debug del progetto

Ad esempio, \ Documenti\Visual Studio 11

Projects\MyAddin1\MyAddin1\bin \

Utilizzata per l'esecuzione del componente aggiuntivo nell'ambiente di debug.Deve sempre indicare il percorso di output della configurazione della build corrente.

Creare un progetto Libreria di controlli Windows Form.

Il componente aggiuntivo per Visual Studio creato nella procedura precedente fa riferimento a un progetto Libreria di controlli Windows Form per creare un'istanza di una classe UserControl.

Per ulteriori informazioni, vedere Controlli per Windows Form.

Per creare un controllo da utilizzare nel Visualizzatore risultati test Web

  1. In Esplora soluzioni fare clic con il pulsante destro del mouse sulla soluzione, scegliere Aggiungi, quindi Nuovo progetto.

    Verrà visualizzata la finestra di dialogo Nuovo progetto.

  2. In Modelli installati espandere Visual Basic o Visual C# e selezionare Windows.

    [!NOTA]

    In questo argomento viene utilizzato Visual C# per il codice di esempio.

  3. Nell'elenco dei modelli selezionare Libreria di controlli Windows Form.

  4. In Nome digitare un nome per il componente aggiuntivo.Ad esempio, WebPerfTestResultsViewerControl.

  5. Scegliere OK.

    WebPerfTestResultsViewerControl del progetto della libreria di controlli Windows Form viene aggiunto in Esplora soluzioni e il file UserControl1.cs viene visualizzato nella modalità progettazione.

  6. Dalla casella degli strumenti trascinare un oggetto DataGridView sulla superficie di userControl1.

  7. Fare clic sul glifo del tag azioni (Glifo Smart Tag) nell'angolo superiore destro dell'oggetto DataGridView e attenersi alla seguente procedura:

    1. Scegliere Dock nel Contenitore Padre.

    2. Deselezionare le caselle di controllo Abilita aggiunta, Abilita modifica, Abilita eliminazione e Abilita riordinamento colonne.

    3. Scegliere Aggiungi Colonna.

      Verrà visualizzata la finestra di dialogo Aggiungi colonna.

    4. Nell'elenco a discesa Tipo selezionare DataGridViewTextBoxColumn.

    5. Deselezionare il testo "Column1" in Testo intestazione.

    6. Scegliere Aggiungi.

    7. Scegliere Chiudi.

  8. Nella finestra Proprietà impostare la proprietà (Nome) dell'oggetto DataGridView su resultControlDataGridView.

  9. Fare clic con il pulsante destro del mouse sull'area di progettazione e selezionare Visualizza codice.

    Il file UserControl1.cs verrà visualizzato nell'editor di codice.

  10. Modificare il nome della classe istanziata UserControl da UserContro1 a resultControl:

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

    Nella procedura seguente si aggiungerà codice al file Connect.cs del progetto WebPerfTestResultsViewerAddin che farà riferimento alla classe resultControl.

    Si aggiungerà ulteriore codice aggiuntivo al file Connect.cs in un secondo momento.

Aggiungere codice a WebPerfTestResultsViewerAddin

Per aggiungere codice al componente aggiuntivo per Visual Studio per estendere il Visualizzatore risultati test Web

  1. In Esplora soluzioni fare clic con il pulsante destro del mouse sul nodo Riferimenti nel progetto WebPerfTestResultsViewerAddin e selezionare Aggiungi riferimento.

  2. Nella finestra di dialogo Aggiungi riferimento selezionare la scheda .NET.

  3. Scorrere verso il basso e selezionare Microsoft.VisualStudio.QualityTools.WebTestFramework e System.Windows.Forms.

  4. Scegliere OK.

  5. Fare di nuovo clic con il pulsante destro del mouse sul nodo Riferimenti e selezionare Aggiungi riferimento.

  6. Nella finestra di dialogo Aggiungi riferimento selezionare la scheda Sfoglia.

  7. Fare click sul menu a discesa per Cercare in e passare a %Programmi%\Microsoft Visual Studio 11.0\Common7\IDE\PrivateAssemblies quindi selezionare il file Microsoft.VisualStudio.QualityTools.LoadTestPackage.dll.

  8. Scegliere OK.

  9. Fare clic con il pulsante destro del mouse sul nodo del progetto WebPerfTestResultsViewerAddin e selezionare Aggiungi riferimento.

  10. Nella finestra di dialogo Aggiungi riferimento, selezionare la scheda Progetti.

  11. In Nome progetto, selezionare il progetto WebPerfTestResultsViewerControl e fare click su OK.

  12. Se il file Connect.cs non è ancora aperto, in Esplora soluzioni fare clic con il pulsante destro del mouse sul file Connect.cs nel progetto WebPerfTestResultsViewerAddin e selezionare Visualizza codice.

  13. Nel file Connect.cs aggiungere le istruzioni Using seguenti:

    using System.IO;
    using System.Windows.Forms;
    using System.Collections.Generic;
    using Microsoft.VisualStudio.TestTools.LoadTesting;
    using Microsoft.VisualStudio.TestTools.WebTesting;
    using WebPerfTestResultsViewerControl;
    
  14. Scorrere fino alla fine del file Connect.cs.È necessario aggiungere un elenco di GUID per l'oggetto UserControl nel caso siano aperte più istanze del Visualizzatore risultati test prestazioni Web.Il codice utilizzato da questo elenco verrà aggiunto in un secondo momento.

    Un secondo elenco di stringhe viene utilizzato nel metodo OnDiscconection che verrà codificato in un secondo momento.

            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. Il file Connect.cs consente di creare un'istanza di una classe denominata Connect dalla classe IDTExtensibility2 e di includere inoltre alcuni metodi per l'implementazione del componente aggiuntivo per Visual Studio.Uno dei metodi è OnConnection a cui viene notificato il caricamento del componente aggiuntivo.Nel metodo OnConnection verrà utilizzata la classe LoadTestPackageExt per creare il pacchetto di estendibilità per il Visualizzatore risultati test prestazioni Web.Aggiungere al metodo OnConnection il codice seguente:

    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. Aggiungere il codice seguente alla classe Connect per creare il metodo WebTestResultViewerExt_WindowCreated per il gestore dell'evento loadTestPackageExt.WebTestResultViewerExt.WindowCreated aggiunto nel metodo OnConnection e per il metodo WindowCreated chiamato dal metodo 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. Aggiungere il codice seguente alla classe Connect per creare il metodo WebTestResultViewer_SelectedChanged per il gestore dell'evento loadTestPackageExt.WebTestResultViewerExt.SelectionChanged aggiunto nel metodo 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. Aggiungere il codice seguente alla classe Connect per creare il metodo WebTesResultViewer_WindowClosed per il gestore dell'evento per loadTestPackageExt.WebTestResultViewerExt.WindowClosed aggiunto nel metodo OnConnection:

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

    Ora che il codice per il componente aggiuntivo per Visual Studio è stato completato, è necessario aggiungere il metodo Update all'oggetto resultControl nel progetto WebPerfTestResultsViewerControl.

Aggiungere codice a WebPerfTestResultsViewerControl

Per ulteriori informazioni, vedere Nozioni fondamentali sullo sviluppo di controlli Windows Form.

Per aggiungere codice al controllo utente

  1. In Esplora soluzioni fare clic con il pulsante destro del mouse sul nodo del progetto WebPerfTestResultsViewerControl e selezionare Proprietà.

  2. Selezionare la scheda Applicazione, fare clic sul menu a discesa Framework di destinazione, selezionare .NET Framework 4 e chiudere Proprietà.

    Questa operazione è necessaria per supportare i riferimenti dll necessari per l'estensione del Visualizzatore risultati test prestazioni Web.

  3. In Esplora soluzioni, nel progetto WebPerfTestResultsViewerControl fare clic con il pulsante destro del mouse sul nodo Riferimenti e selezionare Aggiungi riferimento.

  4. Nella finestra di dialogo Aggiungi riferimento fare clic sulla scheda .NET.

  5. Scorrere verso il basso e selezionare Microsoft.VisualStudio.QualityTools.WebTestFramework.

  6. Scegliere OK.

  7. Nel file UserControl1.cs aggiungere le istruzioni Using seguenti:

    using Microsoft.VisualStudio.TestTools.WebTesting;
    using Microsoft.VisualStudio.TestTools.WebTesting.Rules;
    
  8. Aggiungere il metodo Update che viene chiamato e passato a un oggetto WebTestRequestResult dal metodo WebTestResultViewer_SelectedChanged di WebPerfTestResultsViewerAddin nel file Connect.cs.Il metodo Update consente di popolare l'oggetto DataGridView con varie proprietà passate a quest'ultimo nell'oggetto 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());
                }
            }
    

Compilare la soluzione WebPerfTestResultsViewerAddin

Per compilare la soluzione

  • Scegliere Compila soluzione dal menu Compila.

Registrare il componente aggiuntivo WebPerfTestResultsViewerAddin

Per registrare il componente aggiuntivo utilizzando Gestione componenti aggiuntivi

  1. Scegliere dal menu Strumenti, Gestione componenti aggiuntiviselezionato.

  2. Verrà visualizzata la finestra di dialogo Gestione componenti aggiuntivi.

  3. Selezionare la casella di controllo per il componente aggiuntivo WebPerfTestResultsViewerAddin nella colonna Componenti aggiuntivi disponibili e deselezionare le caselle di controllo sotto le colonne Avvio e Riga di comando.

  4. Scegliere OK.

    Per ulteriori informazioni, vedere Procedura: controllare i componenti aggiuntivi tramite Gestione componenti aggiuntivi.

Eseguire il test delle prestazioni Web utilizzando la compilazione del componente aggiuntivo WebPerfTestResultsViewerAddin

Per eseguire il nuovo componente aggiuntivo per Visual Studio per il Visualizzatore risultati test prestazioni Web

  1. Eseguire il test delle prestazioni Web. Nel Visualizzatore risultati test prestazioni Web verrà visualizzata la nuova scheda del componente aggiuntivo WebPerfTestResultsViewerAddin, denominata Esempio.

  2. Fare clic sulla scheda per visualizzare le proprietà presentate nell'oggetto DataGridView.

Sicurezza

Per migliorare la sicurezza e impedire l'attivazione automatica di componenti aggiuntivi dannosi, Visual Studio offre impostazioni in una pagina Opzioni del menu Strumenti denominata Sicurezza macro/componenti aggiuntivi.

In questa pagina di opzioni è inoltre possibile specificare le cartelle in cui, tramite Visual Studio, viene eseguita la ricerca dei file di registrazione con estensione AddIn.Limitando i percorsi in cui è possibile leggere i file di registrazione con estensione AddIn si migliora la sicurezza,Questo evita l'utilizzo non intenzionale di file dannosi con estensione .AddIn.

Impostazioni di sicurezza dei componenti aggiuntivi

Le impostazioni disponibili in Add-in/Macros Security, Environment, Options Dialog Box relative alla sicurezza dei componenti aggiuntivi sono le seguenti:

  • Abilitare al caricamento i componenti aggiuntivi. Selezionato per impostazione predefinita.Quando selezionata, questa opzione consente il caricamento di componenti aggiuntivi in Visual Studio.In caso contrario, tale operazione non è consentita.

  • Consentire ai componenti aggiuntivi di caricare da un URL. Non selezionato per impostazione predefinita.Quando selezionata, questa opzione consente il caricamento di componenti aggiuntivi da siti Web esterni.In caso contrario, il caricamento di componenti aggiuntivi remoti in Visual Studio non è consentito.Se per qualche motivo non è possibile eseguire il caricamento di un componente aggiuntivo, non potrà essere caricato dal Web.Questa impostazione controlla solo il caricamento della DLL del componente aggiuntivo.I file di registrazione Addin devono trovarsi sempre nel sistema locale.

  • Per ulteriori informazioni, vedere Sicurezza dei componenti aggiuntivi.

Vedere anche

Attività

Procedura: controllare i componenti aggiuntivi tramite Gestione componenti aggiuntivi

Procedura dettagliata: debug di un progetto di componente aggiuntivo

Riferimenti

UserControl

Microsoft.VisualStudio.TestTools.LoadTesting

Microsoft.VisualStudio.TestTools.WebTesting

Microsoft.VisualStudio.TestTools.WebTesting.Rules

UserControl

DataGrid

Concetti

Registrazione di un componente aggiuntivo

Grafico del modello a oggetti di automazione

Eventi nei controlli di Windows Form

Altre risorse

Creazione e utilizzo di plug-in personalizzati per i test di carico e delle prestazioni Web

Proprietà dei controlli Windows Form

Sviluppo di controlli Windows Form personalizzati con .NET Framework