Como criar um plug-in de teste de carga
Publicado: abril de 2016
Você pode criar um plug-in de teste de carga para executar o código em momentos diferentes com o teste de carga em execução. Você cria um plug-in para expandir ou modificar a funcionalidade interna do teste de carga. Por exemplo, você pode codificar um plug-in de teste de carga para modificar o padrão do teste de carga com o teste de carga em execução. Para fazer isso, você deve criar uma classe que herde a interface ILoadTestPlugin. Essa classe deve implementar o método Initialize dessa interface. Para obter mais informações, consulte ILoadTestPlugin.
Dica
Você também pode criar plug-ins para testes de desempenho na Web.Para obter mais informações, consulte Como criar um plug-in de teste de desempenho na Web
Requisitos
- O Visual Studio Enterprise
Para criar um plug-in de teste de carga usando o Visual C#
Abra um projeto de teste de carga que contém um teste de desempenho na Web e de desempenho na Web.
Para obter mais informações, consulte How to: Create and Configure Test Projects for Automated Tests.
Adicione um teste de carga ao projeto de teste e configurá-lo para executar um teste de desempenho na Web.
Para obter mais informações, consulte [obsoleto] Criando testes de carga.
No Gerenciador de Soluções, clique com o botão direito do mouse na solução, selecione Adicionar e escolha Novo Projeto.
A caixa de diálogo Adicionar Novo Projeto é exibida.
Em Modelos Instalados, clique em Visual C#.
Na lista de modelos de projeto, selecione Biblioteca de Classes.
Na caixa de texto Nome, digite um nome para a classe.
Escolha OK.
O novo projeto da biblioteca de classes é adicionado ao Gerenciador de Soluções e a nova classe é exibida no Editor de Códigos.
No Gerenciador de Soluções, clique com o botão direito na pasta Referências da nova biblioteca de classes e selecione Adicionar Referência.
A caixa de diálogo Adicionar Referência é exibida.
Escolha a guia .NET, role para baixo e selecione Microsoft.VisualStudio.QualityTools.LoadTestFramework.
Escolha OK.
A referência para Microsoft.VisualStudio.QualityTools.LoadTestFramework é adicionada à pasta Referência do Gerenciador de Soluções.
No Gerenciador de Soluções, clique com o botão direito do mouse no nó superior do projeto de teste de carga e desempenho na Web que contém o teste de carga a que você deseja adicionar o plug-in de teste de carga e selecione Adicionar Referência.
A caixa de diálogo Adicionar Referência é exibida.
Escolha a guia Projetos e selecione o projeto da biblioteca de classes.
Escolha OK.
No Editor de Códigos, adicione uma instrução using para o namespace Microsoft.VisualStudio.TestTools.LoadTesting.
Implemente a interface ILoadTestPlugin da classe que foi criada no projeto da biblioteca de classes. Consulte a seção Exemplo a seguir para obter uma implementação de exemplo.
Depois de gravar o código, compile o novo projeto.
Clique com o botão direito do mouse no nó superior do teste de carga e escolha Adicionar Plug-in de Teste de Carga.
A caixa de diálogo Adicionar Plug-in de Teste de Carga é exibida.
Em Selecionar um plug-in, selecione a classe de plug-in do teste de carga.
No Propriedades de plug-in selecionado painel, defina os valores iniciais para o plug-in usar em tempo de execução.
Dica
Você pode expor quantas propriedades quiser de seus plug-ins; apenas torne-os públicos, definíveis e de um tipo de base como Inteiro, Booliano ou Cadeia de Caracteres.Você também pode alterar as propriedades de plug-in de teste de desempenho na Web mais tarde usando a janela Propriedades.
Escolha OK.
O plug-in é adicionado à pasta Plug-ins de teste de carga.
Aviso
Você pode obter um erro semelhante ao seguinte quando você executa um teste de desempenho da Web ou o teste de carregamento que usa o seu plug-in:
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.
Isso será causado se você fizer alterações de código em qualquer um de seus plug-ins e criar uma nova versão de DLL (Version=0.0.0.0), mas o plug-in ainda estiver fazendo referência à versão do plug-in original.Para corrigir esse problema, siga estas etapas:
-
Em seu projeto de desempenho na Web e de teste de carga, você verá um aviso em referências.Remova e adicione novamente a referência à DLL do plug-in.
-
Remova o plug-in do seu teste ou do local apropriado e adicione-o de volta.
-
Exemplo
O código a seguir mostra um plug-in de teste de carga que executa um código personalizado depois que ocorre um evento LoadTestFinished. Se esse código for executado em um agente de teste em um computador remoto e o agente de teste não tiver um serviço SMTP localhost, o teste de carga permanecerá no estado "Em andamento" porque uma caixa de mensagem será aberta.
Dica
O código a seguir exige que você adicione uma referência a 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);
}
}
}
}
Oito eventos são associados a um teste de carga que pode ser identificado no plug-in de teste de carga para executar um código personalizado com o teste de carga. Esta é uma lista dos eventos que dão acesso a períodos diferentes da execução do teste de carga:
Consulte também
ILoadTestPlugin
Criar código personalizado e plug-ins para testes de carga
Como criar um plug-in de teste de desempenho na Web