Gerência - Qualidade e Testes

Testes com Visual Studio Team System 2008 - parte VI

Este artigo fala em testes de carga com o Visual Studio Team System 2008.

por Fernando Amaral



Testes de Carga

Este artigo fala em testes de carga com o Visual Studio Team System 2008. Para que você possa realizar um teste de carga, você inicialmente deve ter um ou mais testes gravados em projeto de teste do VS, podem ser tanto um teste Web como um teste unitário. Se você não sabe criar um destes tipos de teste, leia meus artigos anteriores sobre o assunto. É importante salientar que você pode testar a carga de praticamente qualquer tipo de aplicação, e não apenas aplicações Web.

Meu exemplo começa com um projeto de testes com dois testes Web já criados:

Para criar um teste de carga, acesse o menu Test, opção New Test, selecione Load Test:

O VS abre New Load Test Wizard, que auxilia a criação do teste de carga. O assistente facilita algumas configurações, porém algumas opções não estão disponíveis através deste. Ao final da execução, você pode alterar as configurações já feitas ou adicionar novas. A primeira tela traz algumas considerações iniciais. Após a leitura, clique em Next.

A próxima etapa é Scenario. Um cenário é uma forma de agrupar testes com alguma característica em comum, como navegadores, conexões etc. O Wizard permite criar apenas um cenário, porém na IDE do VS podemos criar quantos cenários forem necessários.

Nesta etapa também deve ser configurado o “Think Time”, que como vimos no artigo sobre testes para Web, simula o tempo que um usuário teria de interação com a aplicação (lendo, pensando, etc.). Você pode usar uma distribuição normal baseada nos tempos gravador, ou simplesmente usar os tempos gravados (na execução do teste), ou até desabilitar o “think time”.

Em seguida, devemos criar um padrão de carga para a aplicação. Podemos utilizar um padrão constante, ou seja, o número de usuários simulados será constante durante toda a execução do teste, ou podemos incrementar a carga em passos. Incrementando em passos, devemos definir quantos usuários serão criados inicialmente, a duração de uma interação (tempo entre os incrementos de usuários), quantos usuários serão incrementados a cada etapa, e finalmente, o número máximo de usuários.

No exemplo abaixo a aplicação ira iniciar com 10 usuários, a cada 60 segundos novos usuários serão adicionados, até atingir 30 usuários.

A próxima etapa, Test Mix Model, é nova no Visual Studio Team System 2008. No inicio do artigo mostramos que um teste de carga é executado através de um ou mais testes criados no VS. Um mix de teste é o conjunto de testes que serão executados no teste de carga.

Na etapa seguinte, o Mix é criado, e a forma como ele é criado esta diretamente relacionada do modelo que definimos nesta etapa.

Os tipos de Mix que podemos utilizar são:

· Baseado no número total de testes: Você define um percentual para o próximo teste a ser iniciado. O próximo teste é iniciado baseado neste percentual, não considerando o número atual de usuários que estão executando o teste:

· Baseado no número de usuários virtuais: Ao contrário da opção anterior, esta opção considera também o número de usuários que estão atualmente executando um determinado teste, o que torna a opção mais apropriada se seu “Mix” possui testes de diferentes durações.

· Baseado no ritmo do usuário: Aqui você pode definir uma quantidade em usuário virtual por hora, para cada usuário virtual.

Na etapa Test Mix vamos adicionar os testes para o teste de carga.

Clique em ADD. Em Avaliable Tests você enxerga os testes disponíveis na sua solução. Selecione e clique no ícone para adicioná-los, em seguida clique em Ok.

De volta à tela Test Mix, as opções aqui apresentadas estão relacionadas ao tipo de Test Mix Model selecionado na etapa anterior. Veja que os dois projetos selecionados estão disponíveis, você pode definir o percentual de distribuição do teste através do controle deslizante. O VS ajusta automaticamente os percentuais de modo a fechar 100%. A coluna com o cadeado indica quais linhas terão seu percentual congelado durante um ajuste.

Na próxima etapa, Browser Mix, você pode definir o percentual de distribuição do teste de acordo com o navegador. Para adicionar um novo navegador basta clicar em Add:

Em NetWork Mix podemos definir a distribuição do tipo de rede para o teste. Para adicionar um novo tipo, basta clicar em Add:

Na próxima etapa, Counter Sets, opcional, você pode adicionar contadores ao seu teste. Os tipos de contadores podem incluir do SQL Server, IIS, Memória, processamento etc. Alguns contadores já são adicionados por padrão.

A última etapa trás algumas opções de execução:

· Warn up durantion: Trata do “aquecimento” da aplicação, define um período de tempo em que os dados não são coletados, muito embora o teste já esteja rodando.

· Run Duration: Define o tempo máximo de execução do teste;

· Test iterations: Define a quantidade de repetições do teste.

· Sampling rate: Determina a periodicidade em que os dados de performance serão coletados. Um valor muito baixo pode prejudicar o teste.

· Description: Uma descrição qualquer do teste.

· Maximum Error Detais: Define o número Maximo de erros a ser registrado.

· Validation Level: define o nível de validação a ser utilizado durante a execução do teste, podendo ser Low, Medium ou High.

Clique em Finish. O teste de Carga é criado e exibido na IDE do Visual Studio. Através desta interface você pode alterar configurações feitas no Wizard ou mesmo adicionar configurações que estão presentes apenas através desta IDE:

Você pode agora executar seu teste clicando em Run Test.O VS mostra em tempo real os resultados da execução através do modo de visualização de gráficos.

A exibição dos resultados possui dois modos principais, Graph, onde são exibidos gráficos de acordo com os contadores de performance adicionados a solução, ou Text, onde as informações são exibidas na forma de tabelas:

Os dados coletados durante um teste de carga ficam armazenados, por padrão, em uma instância do SQL Server Express, em um banco de dados denominado LoadTest. A qualquer momento você pode recuperar informações de um teste já realizado, para isto clique Open and Manage Results na barra de ferramentas do Teste, na janela, selecione o Controller ou a opção Local se você seguiu este artigo e não utilizou nenhum controller, logo abaixo selecione qual teste deseja recuperar as informações. Os testes são listados. Selecionando um resultado, você pode exportá-lo para um arquivo Ltrar (Load Test Results Archive) que segue um padrão XML, ou clicar em Open, para abrir o resultado na IDE do VS.

Clicando em Import você pode exportar o resultado para um arquivo Ltrar. Remove apaga o resultado do SQL Server.

Fernando Amaral

Fernando Amaral - Certificado PMP pelo PMI, CDIA+ pela CompTia, MCP, MCAD, MCSD, MCDBA, MCT pela Microsoft. Pós Graduado em Gestão de Sistemas de Informação (UNIDERP) e Melhoria em Processos de Software (UFLA). Atualmente reside em Campo Grande, MS, onde presta consultoria, treinamentos e palestras na área de TI.
Blog:
http://www.fernandoamaral.com.br.