Dando continuidade na série “Conhecendo Ferramentas de Automação para Teste de Software”,
vou apresentar dessa vez uma ferramenta específica para
Testes de Carga e Performance. Ela se chama
WebLOAD.
Desconhecida de muitos e utilizada por poucos, a ferramenta é
open-source e é patrocinada pela Radview Software. Nela é possível realizar
testes de carga e performance, podendo ser facilmente usada por qualquer analista
de testes. Atualmente, a última versão
é a 8.1.0.118.00. O
WebLOAD pode ser comprado na sua versão profissional, possuindo essa mais
funcionalidades que a open-source.
Diferentemente do primeiro artigo escrito dessa série, irei dessa vez apresentar
casos práticos da utilização dessa ferramenta e suas principais funcionalidades,
de maneira que o leitor possa aprender rapidamente e já fazer seus testes de carga/performance
e analisar os resultados gráficos apresentados pela ferramenta
WebLOAD. Por isso, vou dividir em duas partes a apresentação desse artigo:
na primeira mostro as principais funcionalidades da ferramenta
WebLOAD e na segunda vamos fazer um caso prático.
Pode parecer perda de tempo para muitos, mas para um maior aproveitamento de qualquer
ferramenta de automação para teste de software, é importantíssimo saber e entender
sua arquitetura de funcionamento interna. Assim, podemos sempre ter em mente como
a ferramenta realmente funciona influenciando até mesmo na forma como iremos gravar,
manipular e parametrizar os scripts gerados ao longo de sua gravação.
Segue abaixo, a arquitetura de funcionamento da ferramenta
WebLOAD:
Basicamente, essa arquitetura se divide em 3 fases essenciais:
1.
Ambiente de Criação: No ambiente
WebLOAD IDE é possível fazer gravações, edições e depurações de
test scripts.
Scripts são gravados facilmente
e automaticamente o código-fonte de todas as ações realizadas durante a navegação
do site são registradas em JavaScript,
e através do menu toolbox scripts podem
ser editados pela funcionalidade "drag-and-drop"
selecionando os componentes (Try,
Catch, Sleep,
JavaScriptObject, etc.) desejados e arrastando para a chamada “Visual Tree” para
a elaboração de scripts mais robustos
e eficientes.
O WebLOAD IDE suporta os protocolos
HTTP/HTTPS,
incluindo um poderoso gravador baseado em proxy
para capturar os tráfegos registrados no HTTP/HTTPS.
2.
Ambiente de Execução: No ambiente
WebLOAD Console é possível elaborar a carga do cenário de teste, ou seja,
é nesse ambiente que será definida a simulação das centenas de usuários virtuais,
tipos de cargas, parâmetros dos relatórios gerados, etc. As estatísticas de carga
são mostradas em tempo real e podem ser mostradas graficamente ou em forma
de texto. Nesse ambiente de execução são criados repositórios completos de estatísticas
de cada session.
Abaixo segue sua arquitetura de funcionamento:
Além disso, um componente chamado “Performance
Measurement Manager (PMM)” ou Gerenciador
de Medições de Performance dedicado para coletar informações estatísticas/métricas
do lado do servidor, provê um relatório completo sobre o comportamento do sistema
que está recebendo a carga em tempo real enquanto o teste é executado. Medidas podem
ser coletadas de componentes do sistema operacional como CPU e Memória, Servidores
de Aplicação, Banco de Dados, Servidores WEB e outros. O “Performance
Measurement Manager (PMM)” ou Gerenciador
de Medições de Performance inclui 4 monitores genéricos que podem ser
configurados para coletar diferentes métricas do lado do servidor:
- Monitor SNMP: É um cliente
SNMP genérico que pode ser configurado para conectar com qualquer agente
SNMP, usando um filtro
MIB(Management
Information
Base).
- JMX(em breve): É um cliente
JMX genérico que pode ser configurado
para conectar com qualquer agente JMX.
- Win PerfMon: É um componente integrado
de monitoramento de performance do Windows que possibilita o
Performance Measurement Manager (PMM) monitorar qualquer sistema Windows.
- RSTATD: É um cliente
RSTATD que possibilita o monitoramento de sistemas operacionais
UNIX.
Como podemos constatar, apesar de open-source,
a ferramenta possui vários agentes de monitoração, muitas funcionalidades e componentes
que ajudam de forma efetiva na realização dos testes de carga e performance. Ressaltei
o “apesar de open-source” justamente
porque muitos ainda podem achar que ferramentas
open-source não são muito boas e possuem poucas funcionalidades. Claro que
não possuem tantas integrações como as ferramentas pagas, porém o mercado tem mostrado
que as ferramentas open-source cada vez
mais têm seu valor e seu reconhecimento, sendo tão boas quanto as ferramentas pagas.
3.
Relatórios: No
WebLOAD Console é possível visualizar de forma on-line as estatísticas da
sessão de carga. O usuário pode escolher entre duas formas de apresentação dos relatórios:
Chart View e
Spread View. Abaixo é mostrado um exemplo de relatório no modo
Chart View:
Não sendo diferente de quase todas as outras ferramentas de automação de teste de
software, é possível exportar os resultados das sessões de maneira parcial ou total
nos seguintes formatos: HTML,
Microsoft Excel e Arquivos Tabulados.
O Processo de Teste do WebLOAD
é:
Instalação
A instalação do WebLOAD é bem mais fácil
do que a ferramenta
PushToTest TestMaker 5.0 e não é necessário nenhuma configuração
especial.
Basta apenas selecionar o item =>
Desktop machine (Full WebLOAD) para fazer a instalação completa de todos
os itens necessários para que o WebLOAD
funcione corretamente.
O WebLOAD pode ser instalado nos sistemas
operacionais Windows e
Linux.
Principais Funcionalidades do WebLOAD
Mesmo antes de sair fazendo os testes de
carga e performance,
vamos dar uma pequena olhada no ambiente WebLOAD
IDE e WebLOAD Console. Isso
porque é muito importante conhecermos o ambiente com o qual vamos trabalhar. Vou
mostrar ainda as principais funcionalidades de cada ambiente para depois partirmos
na segunda parte desse artigo para o caso prático onde iremos gravar e executar
os testes de carga e performance, gerando os relatórios para análise.
WebLOAD IDE(Integrated Development Environment)
No ambiente WebLOAD IDE podemos
Gravar, Editar e
Executar/Depurar
Agendas.
Agenda é o nome dado para a especificação
da seqüência do protocolo HTTP(ou seja,
os scripts) e são escritas
em JavaScript. Você
pode ainda escrever as suas próprias Agendas
como um arquivo texto ou gerar automaticamente usando o próprio
WebLOAD IDE.
Abaixo segue a tela principal do WebLOAD IDE:
Como podemos ver acima, existem quatro áreas distintas:
- Barra de Ferramentas: Nesta opção
é possível gravar, executar, salvar Agendas,
bem como habilitar e desabilitar outras funcionalidades.
- Caixa de Ferramentas(Toolbox):
No painel Toolbox são mostrados componentes
complementares que podem ser inseridos na Agenda
Tree, customizando assim seu script.
- Agenda
Tree: Todas as ações são gravadas na
Agenda Tree de forma gráfica
enquanto você navega no site.
- JavaScript
View Pane: As ações de cada ação gravada graficamente na
Agenda Tree é transformada em Javascript,
podendo todo o código ser visualizado nesta janela.
O WebLOAD IDE, conforme mostrado anteriormente,
possui dois modos de edição:
- Visual
Editing Mode: Todas as interações são capturadas e gravadas e são mostradas
graficamente, como mostra a figura abaixo:
Nesta opção de edição, é possível também utilizar a funcionalidade "drag-and-drop",
arrastando componentes(toolbox) para
dentro dessa janela.
- JavaScript
Editing Mode: O WebLOAD IDE
é totalmente flexível possibilitando a edição direta no código-fonte gerado. Você
pode ver a Agenda gravada de duas formas
diferentes:
- JavaScript
View Pane: Cada HTTP gravado
na Agenda Tree, é uma representação visual
do código JavaScript. Neste painel é
possível: mostrar o código-fonte para cada HTTP
individualmente, visualizar o código-fonte para toda a
Agenda e visualizar o código-fonte para diferentes setores da
Agenda selecionando o setor desejado no item
Function Name(NodeScript,
InitAgenda, InitClient, TerminateAgenda e TerminateClient) no
JavaScript View Pane. Abaixo é mostrado
o painel
JavaScript View Pane:
- HTTP
Headers Viewer: Cada
HTTP na Agenda Tree também
tem sua representação visual dos cabeçalhos
de resposta ou response headers. Esses
response headers foram recebidos quando
a Agenda foi gravada. Você pode ver os
cabeçalhos dos HTTP's no painel
HTTP Headers Viewer(No menu principal,
opção
View). Como cada HTTP tem
um response headers correlacionado, mas
não todos contém HTTP methods, alguns
cabeçalhos não terão um response header.
Neste caso a mensagem “This object does not have
http Headers” será mostrada. Neste painel é possivel: visualizar cada
Header para cada HTTP separadamente
e visualizar Headers para toda a Agenda.
Abaixo é mostrado o painel
HTTP Headers Viewer:
Como pudemos ver, o WebLOAD IDE é o
ambiente aonde serão gravados os scripts
e todas as ações durante a navegação, transformando essas ações
em código-fonte JavaScript. Esse
código pode ser editado de duas formas: visual ou diretamente no código-fonte. Feito
isso, teremos criado nossa
Agenda.
Observação: Assim que o
WebLOAD é iniciado, um ícone é mostrado no
tray(
).
Este ícone é o TestTalk, um agente de
rede que facilita a comunicação entre o WebLOAD
e as chamadas Load Machines. Ele
é carregado automaticamente assim que o WebLOAD
IDE/Console é iniciado.