Testes com Visual
Studio Team System 2008 parte VII
Testes de Carga Distribuídos com
Visual Studio 2008 Load Agent
Nos artigos anteriores
vimos como criar teste Web e testes de carga utilizando o Visual Studio Team
System 2008, especificamente com a edição Test.
Em nosso teste de carga, não tínhamos a opção de criar um
teste de carga distribuído. O verdadeiro poder de um teste de carga esta na
possibilidade de podermos distribuir o teste em diversos equipamentos,
simulando, de uma forma mais real, o ambiente ao qual a aplicação vai ser submetida.
Em um teste de carga
distribuído, teremos basicamente três diferentes tipos de “Atores”:
·
Visual Studio Team System 2008: Onde vamos criar e configurar
nosso teste de carga.
·
Controller: Serviço principal, que coordena o teste e armazena os
resultados. Um teste de carga deve ter apenas um Controller.
·
Agent: Serviço que executa o teste de fato. Podemos ter quantos
agentes achamos necessários para nosso teste.
Podemos ainda ter a
aplicação a ser testada rodando em outro equipamento.

O conjunto Controller
mais Agents é Denominado Ring.
A configuração
recomendada pela Microsoft é a seguinte:
·
Computador 1: Visual Studio
·
Computador 2: Controller, SQL Express
·
Computador n: Agent
Você pode variar esta configuração, e até, para um ambiente
de aprendizado, instalar tudo em um único equipamento. O que você precisa
saber, no entanto, é que para um teste mais próximo da realidade ter o
Controller junto com um Agent, poderá comprometer o resultado.
Instalação
A instalação do Controller é um processo simples. A tela
inicial de instalação do Load Agent nos trás as opções de instalação do
Controller de dos Agents.

O usuário que rodar a instalação deve fazer parte do grupo
de administradores. Você deve criar um usuário, e informá-lo junto com sua
senha durante o processo de instalação. O usuário deve ter privilégios
suficientes para monitorar a performance de todos os computadores que fazem
parte do teste.
O processo de instalação cria três
grupos locais: TeamTestControllerAdmins, TeamTestControllerUsers e
TeamTestAgentService. Os usuários que irão rodas os testes devem
ser adicionados ao grupo TemTestControllerAdmins, usuários que vão administrar
o Ring devem ser adicionados ao grupo TemTestControllerUser e, finalmente, o
instalador automaticamente adiciona os usuários sob qual roda o serviço Agent
ao grupo TeamTestAgentService.

A instalação do Agent é um
processo ainda mais simples e rápido. Você novamente terá que informar um
usuário para executar o serviço. Na etapa seguinte, você deve informar o nome
do computador onde foi instalado o Serviço Controller:

Repita o processo de instalação dos
Agents em cada equipamento que fizer parte do Ring.
Agora basta abrir seu projeto de
teste de carga.
Vamos ver agora como Administrar
os Controllers e Agents disponíveis em nosso ambiente.
Acesse o Menu Test, opção
Administer Test Controllers. Por padrão, o campo controller vem preenchido com
“<Local - No controller>”, o que significa que o teste de carga será
realizado localmente, sem a distribuição de carga. Digite neste campo o nome do
computador onde foi instalado o controller. Abaixo serão listados os Agents
configurados para aquele controller. Se um Agent não for listado, você pode adicioná-lo
manualmente clicando em Add.

Você pode definir algumas
propriedades para cada Agent, para isto basta selecioná-lo e clicar em
Properties:

Wighting permite especificar o
percentual de carga que este Agent vai receber, Por exemplo, se o teste
envolver 4 Agents, e o Weighting para este for 50, significa que os outros 3
Agents irão dividir os restantes 50 de carga.
IP Switching diz respeito ao
intervalo de IPS que o Agent utilizará para executar a aplicação Web do teste. Attibutes
são valores que poder ser atribuídos a cada agente.
Lembre-se que estávamos
administrando Controllers e Agents, nós ainda não os vinculamos a nosso teste. Para isto, clique em Test, opção Edit Test
Configurations, Local Test Run. Selecione a
opção Controller and Agent, Clique em Remote e selecione o nome do Controller
no DropDown List:

Agora basta executar o teste
normalmente.