O documento apresenta um resumo sobre o uso da ferramenta JMeter para realizar testes de carga em aplicações Web. Ele descreve os principais elementos do JMeter como Thread Groups, Samplers e Listeners para simular cargas de usuários e analisar os resultados. Além disso, fornece um exemplo prático de como configurar e executar um teste de carga com JMeter.
1. Utilizando JMeter para realizar
testes de carga em aplicações
Web
Robinson Castilho
castilho@bacarin.com.br
Bacarin Software Ltda
JUGMS
2. Agenda
●
Apresentação
●
Motivação
●
Visão Geral JMeter
●
Principais elementos
●
Teste prático
●
Conclusão
●
Perguntas & Respostas
●
Coffe-break :)
3. Apresentação
●
Robinson Castilho
(bacarin.com.br/jugms.com.br)
●
Desenvolvedor C++ e Java
●
Sun Certified Java Programmer
●
Sun Certified Web Component
Developer
●
7 anos de experiência
●
Atuação: Bacarin Software Ltda
●
Instrutor SENAC/MS
●
Membro do JUGMS
4. Será que aguenta o “tranco”?
●
Quantos usuários simultâneos
o sistema pode atender sem
capotar?
●
Qual pico de utilização o
hardware resiste?
●
Como saber o tempo médio de
resposta para uma
determinada quantidade de
usuários?
5. JMeter, o que é?
●
Projeto mantido pelo grupo
Jakarta Apache.
●
Usado para simular e analisar
carga de uso de um recurso.
●
Podemos testar carga em:
– Sistemas Web
– Conexões FTP
– Web Services
– JDBC (conexão a SGBD)
– LDAP, etc
9. Tela Inicial
Árvore de elementos com:
●
Test Plan: Agrupa os ítens
utilizados em um Plano de
Teste.
●
WorkBench: Área de trabalho
temporária que apóia o
desenvolvimento do plano de
testes
10. Elementos do JMeter
●
Test Plan e WorkBench
●
Thread Groups: Grupo de
usuários executando
solicitações
●
Samplers: Solicitação (http,
ftp, LDAP...)
●
Logic Controllers: Controlar
a execução (repetidores,
randomização, etc)
11. Elementos do JMeter
●
Listener: Visualizar resultados
do teste
●
Configuration Elements:
Configurar dados padrão
●
Assertions: Verificar
respostas obtidas
12. Elementos do JMeter
●
Pre-Processors: Gerar dados
para serem processados
●
Post-Processors: Processar
resultados, extrair dados para
análise
●
Timer: Controlar tempo de
execução do plano de teste
14. Elemento Test Plan
●
User Defined Variables:
Podem ser utilizadas durante o
teste. Use: ${app}.
●
Run Thread...: Se marcado,
executa os grupos de threads
em seqüência (não paralelo).
●
Fuctional Test Mode:
Armazena o resultado das
requisições
15. Elemento Config
●
Usado para configurar o
plano de teste
●
Comumente usados para
definir padrões de
configuração
●
Em testes WEB, configura-se:
– Servidor
– Protocolo
– Path, ...
17. Elemento Thread Group
●
Representa um conjunto de
usuários executando a
mesma atividade
●
Elemento muito importante
do plano de teste
●
Contribui ativamente na
simulação do plano de teste
19. Elemento Thread Group
●
Number of Thread: Qtde de
usuários simultâneos
●
Ramp-up Period: Intervalo
entre os lançamentos. É dividido
pelo número de threads.
Ex: 10 (threads) / 10 (ramp-up) = 1
●
Irá disparar 1 thread/segundo
●
Loop Count: Qtas vezes deve
executar as threads de teste
20. Elemento Thread Group
●
Start time e End Time:
Agenda o horário de início e
fim da execução,
respectivamente.
●
Duration: Define a duração
do teste (sobrescreve End Time)
●
Startup Delay: Define a
espera para o início do teste
(sobrescreve Start Time)
21. Elemento Sampler
●
Executa a requisição ao
servidor
●
Está sempre associado a um
Thread Group
●
Podemos implementar
Sampler customizados
●
Usaremos: Http Request
23. Elemento Sampler
●
Além das propriedades auto-
explicativas, podemos citar:
●
Send Parameters with the
request: Envia parâmetros
junto a requisição
●
Send Files with the request:
Envia arquivos junto a
requisição
24. Elemento Sampler
●
Optional Tasks
– Retrieve All...: Informa para
parsear e recuperar URLs
internas
– Use as Monitor: Usado junto ao
Monitor Result (verifica status do
servidor)
– Save response...: Transforma a
resposta em MD5
25. Elemento Listener
●
Capturam os resultados
gerados pelo plano de teste
●
Apresentam os resultados em
diversos formatos:
– Gráficos
– Tabelas
●
São associados a:
– Test Plan
– Sampler
28. Isso foi apenas uma degustação :)
●
Jmeter pode muito mais do
que isso
●
Existem outros recursos não
explorados
●
Outros tipos de aplicativos
podem ser testados
●
Podemos automatizar a
execução usando ANT
29. Ant e JMeter
●
Ant é uma ferramenta para
automação de tarefas
●
Similar ao “make”
●
Utilização:
<jmeter
jmeterhome=quot;${jmeter.home}quot;
resultlog=quot;${basedir}/target/JMeterResults.xmlquot;>
<testplans includes=quot;BreweryTestPlan.jmxquot;
dir=quot;${basedir}/tests/loadquot;>
</testplans>
</jmeter>
30. Ant e JMeter
●
Utilizar XSLT para exibir
resultados em HTML
●
Customizar o teste utilizando
parâmetros e propriedades
●
Passível de integração com
sistemas de integração
contínua (ex: CruiseControl)[1]
●
Tudo isso e muito mais.
Apreciem :)
31. Conclusão
●
Jmeter é fácil de operar
●
Permite simular cargas
de utilização de diversos
tipos de recursos
●
Passível de automação
com Ant
●
Free!!!
36. Licença
●
Este material está licenciado sob a Licença
Creative-Commons Atribuição-Uso Não-
Comercial-Compartilhamento pela mesma
Licença 2.5 Brasil
●
Você pode:
– Copiar, distribuir, exibir e executar a obra
– Criar obras derivadas
●
Sob as seguintes condições:
– Atribuição. Você deve dar crédito ao autor original,
da forma especificada pelo autor ou licenciante.
– Uso Não-Comercial. Você não pode utilizar esta
obra com finalidades comerciais.
– Compartilhamento pela mesma Licença. Se você
alterar, transformar, ou criar outra obra com base
nesta, você somente poderá distribuir a obra
resultante sob uma licença idêntica a esta.