Testes com Visual
Studio Team System 2008 parte VI
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.
