|
Dando continuidade com a série “Conhecendo Ferramentas de Automação para Teste de
Software - WebLOAD”,
vamos agora para a nossa Parte 3, que será o desfecho do nosso
aprendizado.
Nessa terceira parte do artigo,
vou apresentar um caso prático da ferramenta
WebLOAD Console para assim, todos
colocarem em prática a teoria da primeira parte do artigo.
WenLOAD Console
Após termos gravado o nosso
exemplo na Parte 2 da nossa
série, colocaremos o script gerado no ambiente de execução, ou seja, o
WebLOAD Console. Ao abrir o ambiente
WebLOAD Console, a tela abaixo é
mostrada:
O leitor poderá explorar outros
modos de criação do template, mas para
nosso exemplo usaremos o bom e velho
Wizard que no WebLOAD é muito bom
e fácil de ser usado para quem está começando.
Clique em Create a new template using
WebLOAD Wizard.
A próxima tela será uma janela de
Welcome. Clique em Next!
O
WebLOAD Console permite que você
configura somente uma Agenda ou um mix de Agendas, ou
seja, vários scripts gravados podem ser executados ao mesmo tempo nessa opção.
Para esse exemplo, vamos fazer com uma única
Agenda, escolhendo a opção Single
Agenda, conforme imagem abaixo:
Feito isso, agora você terá que
selecionar a Agenda gravada, ou seja,
o nosso arquivo .WLP. Se você clicar
no botão View, você irá abrir o
WebLOAD IDE e se voce clicar no botão
Options irá fazer configurações
especificas para aquela Agenda como
escolher o Browser, Autenticações,
Parâmetros de HTTP e outras funcionalidades(para mais informações, consulte o arquivo
WebLOADConsoleUsersGuide.pdf).
E agora sim vamos começar a nos
divertir de verdade configurando o
WebLOAD Console para o teste de performance. Vamos ver como se configura os
relatórios, usuários virtuais, etc.
Vamos agora fazer o agendamento
teste. Não vamos especificar o agendamento em si, ou seja, de que hora a que
hora deverá rodar o teste, mas sim criar um perfil de teste(template) que rode
já!
Clique no registro onde aparece
o nome do computador para que a opção Load
Profiler fique habilitada. Clique no mesmo!
A janela do
Load Profiler irá abrir. Para mais detalhes de qual
profile escolher, consulte a
Parte 1 dessa série. Para
efeitos de aprendizado, vamos escolher a primeira opção mesmo,
Linear.
Explicando a imagem anterior:
- Coloquei 2 minutos de teste.
- Coloquei uma carga inicial de 100
virtual clients.
- Coloquei uma carga final de 1200 virtual
clients.
A faixa entre 100 e 1200
virtual clients será distribuída nos 2
minutos de teste. Clique agora em Append.
Note que uma nova linha
apareceu:
Como eu disse anteriormente, não
vamos colocar um horário para fazer esse teste. Clique então na linha que contem
o símbolo do relógio azul e apague-a.
Clique em
Next.
Por padrão, o
checkbox virá ticado. Tire o check
e clique em
Finish. Vamos fazer
isso para agora explorar outras configurações da ferramenta, caso contrário
iremos executar já o teste de performance.
Vamos preparar agora o ambiente
para que possamos acompanhar de perto o teste. Vá em
View e habilite as janelas
Gauges e
Log Window.
- Gauges: É o
cockpit do analista de teste. Aqui você poderá acompanhar, por exemplo, a
evolução da carga no teste.
- Log Window: Mostra um resumo
do teste incluindo todo o log de
mensagens detectadas pelo WebLOAD Console
em tempo real.
A janela
Session Tree também possui informações importantes e alguns ícones são
mostrados. A seguir pode-se visualizar a função de cada um com seus respectivos
status:
Ícones da
Session Tree
Status dos Ícones
Já na
Log Window as seguintes informações
poderão ser encontradas durante a sessão de teste:
- Uma lista de log´s de mensagens
recebidas durante a sessão de teste.
- O status de cada log de mensagem.
- Um símbolo(clip´s) que permite um
Double-click que abrirá um
visualizador com uma Tabela de Comparação.
- A hora que log foi gerado.
- O gerador de carga e Agenda para
cada log de mensagem gerada.
Para visualizar a mensagem toda,
dê um Double-click. A mensagem
apresentada poder copiada para um editor de texto, por exemplo.
As mensagens apresentadas são
divididas em quatro categorias de status:
-
Sucess / info Message: São adicionadas na
Agenda pelo usuário. Essas mensagens podem também ser usadas para facilitar
a depuração. Esse tipo de mensagem não pára a execução do teste.
-
Minor Error: Indica uma condição suspeita. A fonte do problema
pode ter sido gerada pelo sistema no chamado
SUT(System
Under
Test), a conexão com o servidor,
rede de dados, etc. Esse tipo de mensagem não pára a execução do teste.
-
Error: Quando um erro é detectado o
WebLOAD irá parar aquela rodada de
teste e irá recomeçar a Agenda no Virtual Client em que o
erro foi encontrado.
-
Severe Error: Causa a parada do Gerador de Carga(Load Generator) imediatamente. Uma mensagem de erro mostrando que o processo
foi parado é mostrada.
Observação:
As mensagens de log incluem mensagens
geradas pelo Console, pelo compilador
Java Script e qualquer erro humano ou
mensagens do usuário detectadas pelo
WebLOAD em tempo de execução.
E finalmente por último, vamos
configurar o relatório que será mostrado enquanto a sessão de teste é executada.
Vá em
Reports ->
Report Manager. A seguinte tela irá
abrir:
Por padrão, o
WebLOAD Console já fornece dois modelos pré-definidos. Particularmente não
gosto de usar muito porque não traz as informações que acho mais relevante para
meus testes de performance. Você poderá escolher as informações que deseja
criando um novo relatório. Vá em New.
Três itens são mostrados:
- Total: Soma os valores para
cada estatística através de todas as
Agendas rodando durante o teste.
- nomearquivo.wlp@hostname:
Soma os valores para cada estatística através de todas as instâncias para a
Agenda especificada rodando durante o
teste.
- nomearquivo.wlp::Total: Soma
os valores para cada estatística através de todas as instâncias para a
Agenda especificada rodando sob a
Load Generator especificada durante o
teste.
Cada um desses itens contém
ainda a coleção de estatísticas que você poderá selecionar:
Dica:
Não selecione muitas estatísticas senão irá atrapalhar você no modo gráfico.
Porém irá te ajudar muito no modo Spread
View, onde as informações são mostradas no modo texto.
As estatísticas podem ser
dividas nas seguintes categorias:
- Load Size
- Throughput(bytes per second)
- Page Statistics
- Pages
- Pages Per second
- Page time
- Hit Statistics
- Hits
- Successful Hits
- Failed Hits
- Hits Per Second
- Successful Hits Per Second
- Failed Hits Per Second
- Hit Time
- Round Statistics
- Rounds
- Successful Rounds
- Failed Rounds
- Aborted Rounds
- Rounds Per Second
- Successful Rounds Per Second
- Failed Rounds Per Second
- Round Time
- Connection Statistics
- Attempted Connections
- Successful Connections
- Failed Connections
- Connect Time
- Connection Speed (Bits Per Second)
- DNS Lookup Time
-
Responde
Statistics
- Responses
- Response Data Size
- Response Time
- Send Time
- Process Time
- Receive Time
- Time to First Byte
- HTTP Response Status
- <User-Defined> statistics
- Automatic Data Collection
- Timer
- Counters
-
Transaction Timers
-
Transaction Counters
- Java and ActiveX Timers
-
Java and ActiveX Counters
-
Server Performance Measurements
Usarei em cada um dos três itens
da figura anterior as seguintes estatísticas:
- Load Size -> Current Slice -> Sum
- Hits -> Current Slice -> Sum
- Hits Per Second -> Current Slice -> Sum
- Response Time -> Current Slice -> Sum
Nota:
Pode-se também escolher as estatísticas
em
Test Sumary -> Min/Max/Sum/Count/Average dependo
da estatística selecionada. Consulte também o arquivo .pdf referente ao
WebLOAD Console para mais detalhes e
descrições especificas para cada uma das estatísticas.
Clique
em OK. A
segunte janela aparecerá:
Dê um nome para esse relatório
customizado criado e salve como Predefined
Report caso queira que ele seja posteriormente colocado junto aos relatórios
já definidos pelo WebLOAD ou
Current Session Report para ser usado
somente nessa sessão de teste. Vamos usar o
Predefined Report para que se possa
ser usado outras vezes, sem a necessidade de fazer esses passos novamente de
configuração e escolha das estatísticas. Feito isso clique em
OK.
Note que agora ele se juntou ao
grupo Predefined Report e no item
Report Description são mostradas as
estatísticas selecionadas previamente por você.
Vamos enfim, depois de conhecer
o ambiente de execução do WebLOAD Console
e configurar um novo relatório executar o nosso
script nesse ambiente!
Clique no símbolo ,
Session Control ->
Start Session ou pelo atalho
F5.
Abrirá uma janela perguntando se
você deseja salvar o template atual,
ou seja, as configurações do Load Profiler.
Clique em Yes e salve o arquivo. Feito
isso a sessão de teste irá começar mostrando a seguite tela:
E logo em seguinte o teste
propriamente dito:
Por padrão do
WebLOAD, a aba Default Report será
mostrada. Clique em Reports ->
Report Manager. Selecione o nosso
relatório criado e clique em
Open. Uma nova aba
irá surgir com as estatísticas que queremos visualizar.
Aproveite também e habilite as
abas Statistics e
Dash Board!!!
Você verá as dentro das abas, as
informações serem coletadas automaticamente, possibilitando uma análise
real-time. No caso dos gráficos, eles
vão mudando constantemente
O teste irá durar exatamente os
dois minutos definidos em nosso template.
Navegue agora entre as abas para
você poder observar as estatísticas em modos diferentes.
Nas imagens anteriores foram
mostradas as estatísticas no modo Chart
View. Vamos agora rodar novamente o nosso teste, porém quando o mesmo
começar vamos observar o comportamento do teste no modo
Spread View. Basta clicar nessa aba no
momento da execução!!!
Note que nesse modo, assim como
no Chart View as informações são
geradas automaticamente.
Durante a execução, é possível
também fazer outras modificações como mudar as cores dos gráficos, inserir ou
retirar estatísticas da aba Default Report.
Abaixo segue as funcionalidades
para o modo Chart View:
Se você deseja ainda mais
detalhes de cada linha do gráfico, basta dar um
Double-click na linha desejada para
então abrir uma nova aba somente para a linha do gráfico escolhida.
Vamos agora analisar cada uma
das linhas geradas durante a execução. Não basta apenas fazer o teste de
performance, mas também entender esses relatórios gerados e tomar decisões
pertinentes quanto aos resultados analisados. Algumas decisões seriam do tipo:
Qual é o máximo de usuários que minha aplicação agüenta? Qual é o maior tempo de
resposta que foi detectado, em que ponto da aplicação e exatamente quanto tempo
depois que o teste foi iniciado? Qual seria a provável causa da demora no tempo
de resposta da minha aplicação, ou seja, seria a rede de dados ou banco de dados
ou ainda a própria programação envolvida na página? Essas e outras perguntas
devem ser respondidas.
Vamos para nossa análise:
Nota:
Executei outras vezes o teste, ou seja, os
gráficos gerados abaixo já são diferentes do primeiro exemplo mostrado nesse
mesmo artigo.
Gráfico Geral:
A imagem abaixo mostra a tela final após o teste ter sido realizado. Como já foi
dito, as linhas vão tomando forma à medida que o teste é executado, permitindo
que uma análise prévia já possa ser realizada.
Gráfico Response Time:
Podemos notar claramente abaixo que a medida que a carga no nosso teste aumenta,
o tempo de resposta da aplicação também segue o mesmo ritmo, o que seria um caso
normal, ou seja, quanto mais usuários em nosso site, o tempo de resposta começa
a ficar mais elevado. Lembremos que no
nosso template definimos o número de virtual clients igual a 100 até 1200 em
dois minutos, o que é bem razoável.
Gáficos Hits Per Second:
Quase que semelhante ao item anterior, temos um número elevado de
hits a princípio. Porém esse número
vai diminuindo ao longo do teste.
Lembremos que no nosso template definimos o número de virtual clients igual a
100 até 1200 em dois minutos, o que é bem razoável.
Gráfico Load Size:
No caso do carga gerada nos dois minutos, podemos analisar que a carga foi
crescendo constantemente conforme definimos(de 100 a 1200). Ao final temos uma quebra
brusca justamente porque o teste estava chegando ao seu fim.
Com isso podemos afirmar que a
ferramenta WebLOAD é uma ótima opção para que deseja fazer testes de performance
e stress.
Nenhuma informação foi inventada
e análise feita confirma a teoria do teste de performance que se a sua aplicação
não estiver preparada em termos de uma boa programação, acesso ao banco de
dados, etc. quanto mais usuários tivermos no sistema, maior será o tempo de
resposta e em algumas vezes poderá acontecer o famoso
Crash, ou seja, sua aplicação pára de
funcionar, dados são perdidos, seu servidor WEB também pára e o banco de dados
não responde mais.
Vamos agora ver também como você
poderá complementar com informações o seu teste.
Vá em File ->
Additional Information.
A seguinte tela irá abrir(preencha as informações, caso ache necessário):
Abaixo você poderá ver a
descrição de cada um dos campos:
Além dessas informações, podemos
ainda criar um relatório de defeitos através do menu
Fine -> Defect Report. Caso seu
teste tenha encontrado algum problema voce pode registrar os defeitos
encontrados através dessa opção. Vamos agora dar uma olhada nas três abas(General,
Notes, Attached Files) dessa
janela:
General:
Nessa aba é possível fazer uma descrição completa do defeito encontrado, hora,
resolução, versão do O/S, severidade, etc. O único campo obrigatório é o
Title.
Notes:
Nessa aba você poderá adicionar notas e mais informações sobre seu teste.
Coloque quantas notas desejar para, caso necessário, você recorrer às essas
informações no futuro. O texto colocado nessas notas poderá ver visualizado logo
abaixo, no Note Preview.
Attached Files:
Nessa aba você poderá adicionar arquivos a partir do seu computador. Alguns
exemplos seriam screenshots, arquivos
relacionados ao teste atual, etc.
Clique
em Submit.
Uma janela abrirá pedindo para você salvar. Dê um nome ao
defeito encontrado e salve! Todos os arquivos criados serão no formato
.XML e você poderá criar quantos relatórios de defeitos desejar.
O
WebLOAD permite ainda que você crie
um Summary Report, ou seja, através de
um Wizard é possível exportar os
resultados do seu teste no formato HTML File, Tabbed Files(Arquivos
tabulados) ou Microsoft Excel. Para
usar este recurso vá em Reports ->
Create Summary Report.
Nota:
Não vou entrar a fundo nesse tema, pois é muito simples.
Use o
famoso Next
-> Next ->
Finish. Para
mais
informações,
consulte o
WebLOAD Console Guide.
Como última dica, apresento o
Throttle Control: Com ele é possível alterar o tamanho da carga
dinamicamente em tempo de execução nos testes. Você pode selecionar um
componente(a partir da Session Tree) e
modificar o tamanho da carga, ou seja, o número de
virtual clients participantes no teste. O componente selecionado
pode ser:
- A raiz(root) da
Session Tree.
- Uma Load Machine.
E uma vez usando o
Throttle Control considere o seguinte:
- Você não pode modificar uma Agenda
usando o Throttle Control.
- Você não pode usar o Throttle Control
para criar uma carga maior que 20 usuários no modo
Standalone Workstation.
Para ativar o
Throttle Control, que mais parece um joystick, vá em View ->
Customize. Dê um
check no item
Run. Na barra de ferramentas procure pelo ícone ou
Session Control -> Throttle Control.
Siga os passos abaixo:
- Primeiramente execute o teste.
- Uma vez iniciado o teste, clique no
joystick. A seguinte tela abrirá:
- Por padrão, o botão virá OFF. Clique
para mudar para ON.
- Movimente agora para baixou/para cima a alavanca para mudar dinamicamente o
número de virtual clients.
Note que na
Session Tree o número de virtual
clients vai mudando automaticamente.
Alguns arquivos foram criados
durante todo o processo da Parte 2 e 3 dos artigos. Abaixo mostro a relação dos
mesmos e logo em seguida as extensões associadas à sessão de carga do
WebLOAD.
Com isso, considero finalizado o
aprendizado da ferramenta WebLOAD!
Vamos agora fazer um resumo e relembrar o que aprendemos durante essa série de
três partes:
Parte 1
- Conhecemos a ferramenta WebLOAD
como um todo.
- A arquitetura de como o WebLOAD
funciona.
- A arquitetura do ambiente de criação –
WebLOAD IDE.
- A arquitetura do ambiente de execução –
WebLOAD Console.
- O Performance Measurement Manager (PMM) ou Gerenciador de Medições de
Performance.
- O Processo de Teste do WebLOAD.
- A instalação do WebLOAD.
- WebLOAD IDE.
- WebLOAD Console.
- Criando Templates de Carga pelo modo
Wizard no
WebLOAD Console.
- Criando Templates de Carga pelo modo
Manual no WebLOAD Console.
- Conhecendo o Load Profiler do
WebLOAD Console.
- Conhecendo o WebLOAD Dashboard e os
Relatórios de Estatísticas de Performance no
WebLOAD Console.
- Conhecendo o Performance Measurement
Manager (PMM).
Parte 2
- Criando um Novo Projeto.
- Gravando o script.
- Os dois modos de edição: Visual
Editing Mode e JavaScript Editing Mode.
- Rodando o Script gerado pelo
WebLOAD.
- Ativando novas abas e janelas.
- Extensões geradas pelo WebLOAD.
- Depuração do script gerado pelo
WebLOAD.
Parte 3
- Criando um Novo Template de carga.
- Selecionar o tipo de agenda que irá rodar:
Single Agenda
ou Mix Agenda.
- Agendando o teste e o tipo de perfil de carga.
- Habilitando as janelas Gauges
e Log Window.
- Ícones e status da Session Tree.
- Mensagens apresentadas na Log Window.
- Configurando um Relatório de Estatísticas.
- Rodando o Teste de Performance.
- Habilitando as abas Statistics e
Dash Board.
- Visualizando os resultados no modo
Spread View.
- Análise do gráfico gerado linha por linha.
- Preenchendo informações adicionais sobre o teste atual.
- Criando Relatórios de Defeito.
- Exportando os resultados do teste com o
Summary Report.
- Dica final: Usando o Throttle Control.
- Extensões do WebLOAD Console.
Gostaria agora de agradecer
todas as pessoas que nesse tempo acompanharam a evolução dos artigos. Espero ter
respondido todas as dúvidas que recebi por e-mail(que não foram poucas!). Muitas
pessoas aprovaram a ferramenta e o principal objetivo, pelo menos da minha
parte, foi divulgar essa tecnologia com exemplos práticos, conceitos e
informações. Espero realmente ter contribuído para o conhecimento de todos e
obrigado pelos inúmeros e-mails de elogio.
Fico no aguardo de novas
dúvidas e entrem em contato comigo sempre que necessário.
|