Como: criar um suplemento de Visual Studio para o Visualizador de resultados do teste de desempenho da Web
Você pode estender interface de usuário para o visualizador de resultados de teste de desempenho da Web usando os seguintes namespaces:
Além disso, você precisa adicionar uma referência para a DLL de LoadTestPackage que está localizado em %ProgramFiles% \ Microsoft Visual Studio 11,0 \ Common7 \ IDE \ pasta de PrivateAssemblies.
- Para estender interface de usuário do visualizador de resultados de teste de desempenho da Web, você deve criar um suplemento a Visual Studio e um controle de usuário.Os procedimentos a seguir explicam como criar o suplemento, o controle de usuário, e como implementar as classes necessárias para estender interface de usuário do visualizador de resultados de teste de desempenho da Web.
Requisitos
- Visual Studio Ultimate
Crie ou abra uma solução que contém um aplicativo ASP.NET e um desempenho da Web e um teste de carregamento Project
Crie ou abra uma solução de não produção que você pode fazer experiências com o qual contém um aplicativo ASP.NET e um projeto da Web e de teste de carregamento com um ou mais teste de desempenho da Web para o aplicativo ASP.NET.
Observação Você pode criar o projeto de desempenho do aplicativo da Web e da Web do ASP.NET e de teste de carga que contém teste de desempenho da Web seguindo os procedimentos em Instruções passo a passo: criando um aplicativo Web simples e em Passo a passo: Gravação e execução de um teste de desempenho da Web.
Um suplemento é uma DLL compilado que executa no ambiente de desenvolvimento integrado Visual Studio (IDE).Ajuda de compilação protegem a propriedade intelectual e melhora o desempenho.Embora você possa criar adendos manualmente, talvez seja mais fácil usar o assistente do suplemento.O assistente cria um suplemento mas funcionalmente básico que você pode executar imediatamente após você o cria.Após o assistente do suplemento gera o programa básico, você pode adicionar código e personalizá-lo.
O assistente de suplementos permite que você forneça um nome para exibição e descrição para o suplemento.Ambos serão exibidas em Gerenciador de Suplementos.Opcionalmente, você pode fazer o assistente gere código que adiciona ao menu de Ferramentas um comando abra o suplemento.Você também pode optar exibir uma caixa de diálogo personalizada de Sobre para o suplemento.Quando o assistente terminar, você terá um novo projeto que tem apenas uma classe que implementa o suplemento.Essa classe é chamada se conecta.
Você usará Gerenciador de Suplementos o final deste tópico.
Para obter mais informações, consulte A criação de suplementos e assistentes.
No solution Explorer, clique com o botão direito do mouse na solução, escolha Adicionar e selecione Novo Projeto.
A caixa de diálgo New Project é exibida.
Em Modelos Instalados, expanda Outros tipos de projetos e selecione Extensibilidade.
Na lista de modelos, Suplemento do Visual Studioselecione.
Sob o nome, digite um nome para o suplemento.Por exemplo, WebPerfTestResultsViewerAddin.
Escolha OK.
O assistente de suplementos do Visual Studio.
Escolha Avançar.
Na página de Selecione uma Linguagem de Programação , selecione a linguagem de programação que você deseja usar para escrever o suplemento.
Observação Este tópico usa Visual C# para o código de exemplo.
Na página de Selecione um Aplicativo Host , em Visual Studio selecione e em Macros do Visual Studioclaro.
Escolha Avançar.
Digite um nome e descrição para o suplemento na página de Digite um Nome e uma Descrição .
Depois que o suplemento é criado, seu nome e descrição são exibidos na lista de Suplementos disponíveis em Gerenciador de Suplementos.Adicione o suficiente para detalhes a descrição do suplemento para que os usuários podem saber o que o suplemento faz, como funciona, e assim por diante.
Escolha Avançar.
Na página Escolha opções do suplemento, selecione Desejo que o suplemento seja carregado quando o aplicativo host for iniciado.
Desmarque as caixas de seleção restantes.
Na página de Escolhendo Informações de 'Ajuda Sobre' , você pode especificar se você deseja informações sobre o suplemento a ser exibido em uma caixa de diálogo de Sobre .Se você desejar que as informações a serem exibidas, selecione a caixa de seleção de Sim, desejo que o suplemento ofereça informações da caixa 'Sobre' .
Informações que pode ser adicionada a caixa de diálogo de Visual StudioSobre inclui o número de versão, detalhes de suporte, licenciando dados, e assim por diante.
Escolha Avançar.
As opções que você selecionou são exibidas na página de Resumo para examinar.Se você estiver satisfeito, escolha Concluir para criar o suplemento.Se você desejar alterar algo, escolha o botão de Voltar .
A nova solução e projeto é criado e o arquivo de Connect.cs para o novo suplemento é exibido no editor de códigos.
Você adicionará código para o arquivo de Connect.cs após o seguinte procedimento que cria um controle de usuário que é referenciada por este projeto de WebPerfTestResultsViewerAddin.
Depois que um suplemento é criado, é necessário registrá-lo com Visual Studio antes que possa ser ativado em Gerenciador de Suplementos.Você faz isso usando um arquivo XML que tem uma extensão de nome de arquivo .addin.
O arquivo de .addin descreve as informações que Visual Studio necessário para exibir o suplemento em Gerenciador de Suplementos.Quando inicia de Visual Studio , ele olharem o local do arquivo de .addin para todos os arquivos de .addin disponíveis.Se encontrar alguns, lê o arquivo XML e fornece a Gerenciador de Suplementos informações que requer iniciar o suplemento quando é clicado.
O arquivo de .addin é criado automaticamente quando você cria um suplemento usando o assistente do suplemento.
Para obter mais informações, consulte Registro do suplemento.
Duas cópias do arquivo de .addin são criadas automaticamente pelo assistente do suplemento, como segue:
. Local de Arquivo do suplemento |
. Local do Arquivo DLL |
Descrição |
---|---|---|
Pasta raiz do projeto Documentos\ \ Visual Studio 11 \ projects \ \ \ MyAddin1 MyAddin1 |
Caminho local (MyAddin1.dll) |
Usado para implantação de projeto do suplemento.Incluído no projeto para facilitar a edição e tem o caminho local para implantação de XCopy- estilo. |
Pasta do suplemento Documentos\ \ Visual Studio 11 \ \ suplementos - ou - Local de documentos compartilhados\Addins\ |
Pasta debug de O (Por exemplo, \ documents \ Visual Studio 11 Projetos MyAddin1 MyAddin1 \ \ \ bin \) |
Usado para executar o suplemento no ambiente de depuração.Sempre deve apontar para o caminho de saída de compilação atual a configuração. |
O suplemento a Visual Studio criou nas referências dos procedimentos anteriores um projeto de biblioteca de controle de formulários do Windows para criar uma instância de uma classe de UserControl .
Para obter mais informações, consulte Controles do Windows Forms.
No solution Explorer, clique com o botão direito do mouse na solução, escolha Adicionar e selecione Novo Projeto.
A caixa de diálgo New Project é exibida.
Em Modelos Instalados, expanda Visual Basic ou Visual C# e selecione Janelas.
Observação Este tópico usa Visual C# para o código de exemplo.
Na lista de modelos, Biblioteca de Controle Windows Formsselecione.
Em Nome, digite um nome para o suplemento.Por exemplo, WebPerfTestResultsViewerControl.
Escolha OK.
O WebPerfTestResultsViewerControl projeto de biblioteca de controle de formulários do Windows é adicionado no solution Explorer e UserControl1.cs é exibido no modo de design.
Na caixa de ferramentas, arraste DataGridView na superfície de userControl1.
Clique na marca da ação () no canto superior direito de DataGridView e siga estas etapas:
Escolha Encaixar no Contêiner Pai.
Desmarque as caixas de seleção para Habilitar Inclusão, Habilitar Edição, Habilitar Exclusão e Habilitar Reorganização de Colunas.
Escolha Adicionar Coluna.
A caixa de diálogo de Adicionar Coluna é exibida.
Na lista suspensa de Tipo , DataGridViewTextBoxColumnselecione.
Desmarque o texto “Column1” em Texto do Cabeçalho.
Escolha Adicionar.
Escolha Fechar.
Na janela propriedades, altere a propriedade de (Nome) de DataGridView ao resultControlDataGridView.
Clique com o botão direito do mouse na superfície de design e selecione Exibir Código.
O arquivo de UserControl1.cs é exibido no editor de códigos.
Altere o nome da classe instanciado a partir de UserControl de UserContro1 ao resultControl:
namespace WebPerfTestResultsViewerControl { public partial class resultControl : UserControl { public resultControl() { InitializeComponent(); }
No próximo procedimento, você adicionará código para o arquivo de Connect.cs de projeto de WebPerfTestResultsViewerAddin que fará referência à classe de resultControl.
Você irá adicionar qualquer código adicional para o arquivo de Connect.cs posteriormente.
Para adicionar código ao suplemento ao Visual Studio para estender o visualizador de resultados de teste da Web
No solution Explorer, clique com o botão direito do mouse no nó de Referências no projeto de WebPerfTestResultsViewerAddin e selecione Adicionar Referência.
Na caixa de diálogo de Adicionar Referência , escolha a guia do .NET .
Role para baixo e selecione Microsoft.VisualStudio.QualityTools.WebTestFramework e System.Windows.Forms.
Escolha OK.
Clique com o botão direito do mouse no nó de Referências novamente, e selecione Adicionar Referência.
Na caixa de diálogo de Adicionar Referência , escolha a guia de Procurar .
Escolha a lista suspensa para Examinar e navegar para %ProgramFiles% \ Microsoft Visual Studio 11,0 \ Common7 \ IDE \ PrivateAssemblies e selecione o arquivo de Microsoft.VisualStudio.QualityTools.LoadTestPackage.dll.
Escolha OK.
Clique com o botão direito do mouse no nó de projeto de WebPerfTestResultsViewerAddin, e selecione Adicionar Referência.
Na caixa de diálogo de Adicionar Referência , escolha a guia de Projetos .
Em Nome do Projeto, selecione o projeto de WebPerfTestResultsViewerControl e escolha OK.
Se o arquivo de Connect.cs ainda não está aberto, no solution Explorer, clique com o botão direito do mouse no arquivo de Connect.cs no projeto de WebPerfTestResultsViewerAddin e selecione Exibir Código.
No arquivo de Connect.cs, adicione as seguintes declarações de uso:
using System.IO; using System.Windows.Forms; using System.Collections.Generic; using Microsoft.VisualStudio.TestTools.LoadTesting; using Microsoft.VisualStudio.TestTools.WebTesting; using WebPerfTestResultsViewerControl;
Role para baixo da parte inferior do arquivo de Connect.cs.Você precisa adicionar uma lista de GUIDs para UserControl o caso de mais de uma instância do visualizador de resultados de teste de desempenho da Web é aberta.Você adicionará código posteriormente usando esta lista.
Uma segunda lista de cadeia de caracteres é usada no método de OnDiscconection que você codificará posteriormente.
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>();
O arquivo de Connect.cs cria uma classe chamada conecta da classe de IDTExtensibility2 e também inclui alguns métodos para implementar o suplemento a Visual Studio .Um dos métodos é o método de OnConnection, que recebe notificação que o suplemento está sendo carregado.No método de OnConnection, você usará a classe de LoadTestPackageExt para criar seu pacote de extensibilidade para o visualizador de resultados de teste de desempenho da Web.Adicione o seguinte código ao método de 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); }
Adicione o seguinte código à classe conectar para criar o método de WebTestResultViewerExt_WindowCreated para o manipulador de eventos de loadTestPackageExt.WebTestResultViewerExt.WindowCreated que você adicionou no método de OnConnection e para o método de WindowCreated que chama o método de 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); }
Adicione o seguinte código à classe conectar para criar o método de WebTestResultViewer_SelectedChanged para o manipulador de eventos de loadTestPackageExt.WebTestResultViewerExt.SelectionChanged que você adicionou no método de 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); } }
Adicione o seguinte código à classe conectar para criar o método de WebTesResultViewer_WindowClosed para o manipulador de eventos para o loadTestPackageExt.WebTestResultViewerExt.WindowClosed que você adicionou no método de OnConnection:
void WebTesResultViewer_WindowClosed(object sender, WebTestResultViewerExt.WindowClosedEventArgs e) { if (m_controls.ContainsKey(e.WebTestResultViewer.TestResultId)) { m_controls.Remove(e.WebTestResultViewer.TestResultId); } }
Agora que o código foi concluído para o suplemento ao Visual Studio, você precisa adicionar o método de atualização para o resultControl no projeto de WebPerfTestResultsViewerControl.
Para obter mais informações, consulte Noções básicas de desenvolvimento de controle de formulários do Windows.
No solution Explorer, clique com o botão direito do mouse no nó de projeto de WebPerfTestResultsViewerControl e selecione Propriedades.
Selecione a guia de Aplicativo e então escolha a lista suspensa de Estrutura de Destino e o .NET Framework 4 selecione e fechar as propriedades.
Isso é necessário para oferecer suporte a referências de dlls necessárias estendendo o visualizador de resultados de teste de desempenho da Web.
No solution Explorer, no projeto de WebPerfTestResultsViewerControl, clique com o botão direito do mouse no nó de Referências e selecione Adicionar Referência.
Na caixa de diálogo de Adicionar Referência , clique na guia do .NET .
Role para baixo e selecione Microsoft.VisualStudio.QualityTools.WebTestFramework.
Escolha OK.
No arquivo de UserControl1.cs, adicione as seguintes declarações de uso:
using Microsoft.VisualStudio.TestTools.WebTesting; using Microsoft.VisualStudio.TestTools.WebTesting.Rules;
Adicione o método de atualização que é chamado e passado um WebTestRequestResult do método de WebPerfTestResultsViewerAddin WebTestResultViewer_SelectedChanged no arquivo de Connect.cs.O método update preenche o DataGridView com várias propriedades passados a ele no 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()); } }
- No menu de CompilarCompilar solução, selecione.
No menu de Ferramentas , Gerenciador de Suplementosselecione.
A caixa de diálogo de Gerenciador de Suplementos é exibida.
Selecione a caixa de seleção para o suplemento a WebPerfTestResultsViewerAddin na coluna de Suplementos disponíveis e desmarque as caixas de seleção sob as colunas de Inicialização e de Linha de comando .
Escolha OK.
Para obter mais informações, consulte Como: Add-Ins de controle, usando o Gerenciador de suplemento.
Execute o teste de desempenho da Web usando a compilação o suplemento a WebPerfTestResultsViewerAddin
Execute o teste de desempenho da Web e você verá o WebPerfTestResultsViewerAddin suplemento a nova guia entitulado exemplo exibido no visualizador de resultados de teste de desempenho da Web.
Escolha a guia para ver as propriedades apresentadas no DataGridView.
Para melhorar a segurança impedindo que suplementos mal-intencionado ative automaticamente, Visual Studio fornece configurações na página de Opções de ferramentas chamada Segurança de macros/suplemento.
Além disso, esta página de opções permite que você especifique as pastas em que Visual Studio procura por arquivos de registro de .AddIn.Isso melhora a segurança permitindo que você limitar os locais onde os arquivos de registro de .AddIn podem ser lidos.Isso ajuda a impedir que causa dos arquivos mal-intencionados de .AddIn serem usadas.
Configurações de segurança do suplemento
As configurações em Add-in/Macros Security, Environment, Options Dialog Box relacionadas à segurança do suplemento são:
Permite componentes do suplemento ao carregar. Selecionado por padrão.Quando selecionado, suplementos é permitido carregar em Visual Studio.Quando não selecionado, suplementos é proibido de carregamento em Visual Studio.
Permite componentes do suplemento à carga de um URL. Não selecionado por padrão.Quando selecionado, suplementos é permitido ser carregado em sites externos.Quando não selecionado, suplementos de remoto é proibido de carregamento em Visual Studio.Se um suplemento não pode carregar por algum motivo, então não pode ser carregado Web.Esta configuração controla somente ao carregar a DLL do suplemento.. Os arquivos de registro do suplemento devem sempre ser localizados no sistema local.
Para obter mais informações, consulte Suplemento de segurança.
Como: Add-Ins de controle, usando o Gerenciador de suplemento
Passo a passo: Depuração de um projeto do suplemento
Microsoft.VisualStudio.TestTools.LoadTesting
Microsoft.VisualStudio.TestTools.WebTesting
Microsoft.VisualStudio.TestTools.WebTesting.Rules
Gráfico de modelo de objeto de automação
Eventos em controles do Windows Forms
Criar e usar o Custom Plug-ins para carga e testes de desempenho da Web
Propriedades de controles do Windows Forms
Desenvolvendo controles de formulários do Windows personalizada com o.NET Framework