utilizando jmeter para realizar testes de carga em aplicações web
DESCRIPTION
Utilizando JMeterpara realizar testesde carga emaplicações WEB(Robinson Castilho / Bacarin)TRANSCRIPT
![Page 1: Utilizando JMeter para realizar testes de carga em aplicações WEB](https://reader031.vdocuments.pub/reader031/viewer/2022020718/55610fecd8b42a0e198b4e29/html5/thumbnails/1.jpg)
UtilizandoUtilizando JMeterJMeter para realizar para realizar testes de carga em aplicações testes de carga em aplicações
WebWeb
Robinson CastilhoRobinson [email protected]@bacarin.com.br
Bacarin Software LtdaBacarin Software LtdaJUGMSJUGMS
![Page 2: Utilizando JMeter para realizar testes de carga em aplicações WEB](https://reader031.vdocuments.pub/reader031/viewer/2022020718/55610fecd8b42a0e198b4e29/html5/thumbnails/2.jpg)
AgendaAgenda● Apresentação● Motivação● Visão Geral JMeter● Principais elementos● Teste prático● Conclusão● Perguntas & Respostas● Coffe-break :)
![Page 3: Utilizando JMeter para realizar testes de carga em aplicações WEB](https://reader031.vdocuments.pub/reader031/viewer/2022020718/55610fecd8b42a0e198b4e29/html5/thumbnails/3.jpg)
ApresentaçãoApresentaçã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
![Page 4: Utilizando JMeter para realizar testes de carga em aplicações WEB](https://reader031.vdocuments.pub/reader031/viewer/2022020718/55610fecd8b42a0e198b4e29/html5/thumbnails/4.jpg)
Será que aguenta o “tranco”?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?
![Page 5: Utilizando JMeter para realizar testes de carga em aplicações WEB](https://reader031.vdocuments.pub/reader031/viewer/2022020718/55610fecd8b42a0e198b4e29/html5/thumbnails/5.jpg)
JMeter, o que é? 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
![Page 6: Utilizando JMeter para realizar testes de carga em aplicações WEB](https://reader031.vdocuments.pub/reader031/viewer/2022020718/55610fecd8b42a0e198b4e29/html5/thumbnails/6.jpg)
Características do JMeterCaracterísticas do JMeter● Multiplataforma (100% Java)● Interface gráfica● Multithreading
– simula multiplas requisições simultaneamente.
● Extensível – Plug-ins– Samplers
● Estatísticas e gráficos
![Page 7: Utilizando JMeter para realizar testes de carga em aplicações WEB](https://reader031.vdocuments.pub/reader031/viewer/2022020718/55610fecd8b42a0e198b4e29/html5/thumbnails/7.jpg)
Requisitos e DownloadRequisitos e Download● Requisito: Maquina virtual java
http://www.java.com/download/
● Download JMeter: http://jakarta.apache.org/jmeter
● Executar:– Unix: java -jar ApacheJMeter.jar– Win: jmeter.bat
![Page 8: Utilizando JMeter para realizar testes de carga em aplicações WEB](https://reader031.vdocuments.pub/reader031/viewer/2022020718/55610fecd8b42a0e198b4e29/html5/thumbnails/8.jpg)
Tela Inicial JMeterTela Inicial JMeter
![Page 9: Utilizando JMeter para realizar testes de carga em aplicações WEB](https://reader031.vdocuments.pub/reader031/viewer/2022020718/55610fecd8b42a0e198b4e29/html5/thumbnails/9.jpg)
Tela InicialTela 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
![Page 10: Utilizando JMeter para realizar testes de carga em aplicações WEB](https://reader031.vdocuments.pub/reader031/viewer/2022020718/55610fecd8b42a0e198b4e29/html5/thumbnails/10.jpg)
Elementos do JMeterElementos 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)
![Page 11: Utilizando JMeter para realizar testes de carga em aplicações WEB](https://reader031.vdocuments.pub/reader031/viewer/2022020718/55610fecd8b42a0e198b4e29/html5/thumbnails/11.jpg)
Elementos do JMeterElementos do JMeter
● Listener: Visualizar resultados do teste
● Configuration Elements: Configurar dados padrão
● Assertions: Verificar respostas obtidas
![Page 12: Utilizando JMeter para realizar testes de carga em aplicações WEB](https://reader031.vdocuments.pub/reader031/viewer/2022020718/55610fecd8b42a0e198b4e29/html5/thumbnails/12.jpg)
Elementos do JMeterElementos 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
![Page 13: Utilizando JMeter para realizar testes de carga em aplicações WEB](https://reader031.vdocuments.pub/reader031/viewer/2022020718/55610fecd8b42a0e198b4e29/html5/thumbnails/13.jpg)
Elemento Elemento Test PlanTest Plan
![Page 14: Utilizando JMeter para realizar testes de carga em aplicações WEB](https://reader031.vdocuments.pub/reader031/viewer/2022020718/55610fecd8b42a0e198b4e29/html5/thumbnails/14.jpg)
Elemento Elemento Test PlanTest 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
![Page 15: Utilizando JMeter para realizar testes de carga em aplicações WEB](https://reader031.vdocuments.pub/reader031/viewer/2022020718/55610fecd8b42a0e198b4e29/html5/thumbnails/15.jpg)
Elemento Elemento ConfigConfig● Usado para configurar o
plano de teste● Comumente usados para
definir padrões de configuração
● Em testes WEB, configura-se:– Servidor– Protocolo– Path, ...
![Page 16: Utilizando JMeter para realizar testes de carga em aplicações WEB](https://reader031.vdocuments.pub/reader031/viewer/2022020718/55610fecd8b42a0e198b4e29/html5/thumbnails/16.jpg)
Elemento Elemento ConfigConfig – Http Request – Http Request
![Page 17: Utilizando JMeter para realizar testes de carga em aplicações WEB](https://reader031.vdocuments.pub/reader031/viewer/2022020718/55610fecd8b42a0e198b4e29/html5/thumbnails/17.jpg)
Elemento Elemento Thread GroupThread 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
![Page 18: Utilizando JMeter para realizar testes de carga em aplicações WEB](https://reader031.vdocuments.pub/reader031/viewer/2022020718/55610fecd8b42a0e198b4e29/html5/thumbnails/18.jpg)
Elemento Elemento Thread GroupThread Group
![Page 19: Utilizando JMeter para realizar testes de carga em aplicações WEB](https://reader031.vdocuments.pub/reader031/viewer/2022020718/55610fecd8b42a0e198b4e29/html5/thumbnails/19.jpg)
Elemento Elemento Thread GroupThread 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
![Page 20: Utilizando JMeter para realizar testes de carga em aplicações WEB](https://reader031.vdocuments.pub/reader031/viewer/2022020718/55610fecd8b42a0e198b4e29/html5/thumbnails/20.jpg)
Elemento Elemento Thread GroupThread 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)
![Page 21: Utilizando JMeter para realizar testes de carga em aplicações WEB](https://reader031.vdocuments.pub/reader031/viewer/2022020718/55610fecd8b42a0e198b4e29/html5/thumbnails/21.jpg)
Elemento SamplerElemento Sampler
● Executa a requisição ao servidor
● Está sempre associado a um Thread Group
● Podemos implementar Sampler customizados
● Usaremos: Http Request
![Page 22: Utilizando JMeter para realizar testes de carga em aplicações WEB](https://reader031.vdocuments.pub/reader031/viewer/2022020718/55610fecd8b42a0e198b4e29/html5/thumbnails/22.jpg)
Elemento Elemento SamplerSampler
![Page 23: Utilizando JMeter para realizar testes de carga em aplicações WEB](https://reader031.vdocuments.pub/reader031/viewer/2022020718/55610fecd8b42a0e198b4e29/html5/thumbnails/23.jpg)
Elemento Elemento SamplerSampler
● 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
![Page 24: Utilizando JMeter para realizar testes de carga em aplicações WEB](https://reader031.vdocuments.pub/reader031/viewer/2022020718/55610fecd8b42a0e198b4e29/html5/thumbnails/24.jpg)
Elemento Elemento SamplerSampler
● 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
![Page 25: Utilizando JMeter para realizar testes de carga em aplicações WEB](https://reader031.vdocuments.pub/reader031/viewer/2022020718/55610fecd8b42a0e198b4e29/html5/thumbnails/25.jpg)
Elemento Elemento ListenerListener● Capturam os resultados
gerados pelo plano de teste● Apresentam os resultados em
diversos formatos:– Gráficos– Tabelas
● São associados a:– Test Plan– Sampler
![Page 26: Utilizando JMeter para realizar testes de carga em aplicações WEB](https://reader031.vdocuments.pub/reader031/viewer/2022020718/55610fecd8b42a0e198b4e29/html5/thumbnails/26.jpg)
Elemento Elemento ListenerListener
![Page 27: Utilizando JMeter para realizar testes de carga em aplicações WEB](https://reader031.vdocuments.pub/reader031/viewer/2022020718/55610fecd8b42a0e198b4e29/html5/thumbnails/27.jpg)
Exemplo PráticoExemplo Prático
![Page 28: Utilizando JMeter para realizar testes de carga em aplicações WEB](https://reader031.vdocuments.pub/reader031/viewer/2022020718/55610fecd8b42a0e198b4e29/html5/thumbnails/28.jpg)
Isso foi apenas uma degustação :)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
![Page 29: Utilizando JMeter para realizar testes de carga em aplicações WEB](https://reader031.vdocuments.pub/reader031/viewer/2022020718/55610fecd8b42a0e198b4e29/html5/thumbnails/29.jpg)
Ant e JMeterAnt e JMeter● Ant é uma ferramenta para
automação de tarefas● Similar ao “make”● Utilização:
<jmeter jmeterhome="${jmeter.home}" resultlog="${basedir}/target/JMeterResults.xml"> <testplans includes="BreweryTestPlan.jmx" dir="${basedir}/tests/load"> </testplans></jmeter>
![Page 30: Utilizando JMeter para realizar testes de carga em aplicações WEB](https://reader031.vdocuments.pub/reader031/viewer/2022020718/55610fecd8b42a0e198b4e29/html5/thumbnails/30.jpg)
Ant e JMeterAnt 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 :)
![Page 31: Utilizando JMeter para realizar testes de carga em aplicações WEB](https://reader031.vdocuments.pub/reader031/viewer/2022020718/55610fecd8b42a0e198b4e29/html5/thumbnails/31.jpg)
ConclusãoConclusã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!!!
![Page 32: Utilizando JMeter para realizar testes de carga em aplicações WEB](https://reader031.vdocuments.pub/reader031/viewer/2022020718/55610fecd8b42a0e198b4e29/html5/thumbnails/32.jpg)
Perguntas & RespostasPerguntas & Respostas
![Page 33: Utilizando JMeter para realizar testes de carga em aplicações WEB](https://reader031.vdocuments.pub/reader031/viewer/2022020718/55610fecd8b42a0e198b4e29/html5/thumbnails/33.jpg)
Visite-nosVisite-nos
http://www.jugms.com.brhttp://www.bacarin.com.br
![Page 34: Utilizando JMeter para realizar testes de carga em aplicações WEB](https://reader031.vdocuments.pub/reader031/viewer/2022020718/55610fecd8b42a0e198b4e29/html5/thumbnails/34.jpg)
BibliografiaBibliografia● [1] http://www.infoq.com/news/2008/
04/JMeter-Ant-CI
● [2] http://www.linux.com/feature/34432
● [3] http://jakarta.apache.org/jmeter/
● [4] http://www.javaworld.com/javaworld/jw-07-2005/jw-0711jmeter.html?page=1
● [5] http://www.vivaolinux.com.br/artigo/Jmeter-com-qualidade-e-performance/
● [6] http://pt.wikipedia.org/wiki/Jmeter
Acessados em 20/09/2008
![Page 36: Utilizando JMeter para realizar testes de carga em aplicações WEB](https://reader031.vdocuments.pub/reader031/viewer/2022020718/55610fecd8b42a0e198b4e29/html5/thumbnails/36.jpg)
LicençaLicenç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.