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.
-------------------------------------------------------------------------------------------------------
Fábio Martinho Campos, CBTS® CST®
CBTS - Certified Brazilian Tester in Software
CST - Certified Software Testing
Especialista em Qualidade de Software e Testes de SI/Softwares
Software Quality and SI/Softwares Test Specialist
Comentários
Ferramentas de Performance
Fabio, Boa Noite,
estou pesquisando sobre ferramentas para teste de performance para adoção na minha empresa, vc poderia me auxiliar indicando algumas ferrramentas além do webloader?
Acha que a webloader deixa a desejar em relação a ferramentas pagas?
Muito obrigada,
Gisela.sn
Sugestão
Olá amigo,
Sugiro, caso haja alguma outra parte, que você dê um foco maior na análise dos dados, segui os passos e correu tudo certo, mas ficou um pouco vago essa análise final, você não comentou por exemplo para que serve realmente os tres tipos de estatísticas que vc marcou (nomearquivo.wlp@hostname:) e no final não falou de qual vc analisou.
Só uma dica mesmo para complementar, acho que faltou ai no final a sua análise em cima do teste, de acordo com os dados apresentados qual foi a conclusão, essas coisas.
Grande abraço e parabéns pelo artigo.
[]'s
Raphael Soares
Analista de Testes