Utilizando JMeter para realizar testes de carga em aplicações WEB

21.368 visualizações

Publicada em

Utilizando JMeter
para realizar testes
de carga em
aplicações WEB

(Robinson Castilho / Bacarin)

Publicada em: Tecnologia
0 comentários
6 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
21.368
No SlideShare
0
A partir de incorporações
0
Número de incorporações
171
Ações
Compartilhamentos
0
Downloads
453
Comentários
0
Gostaram
6
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Utilizando JMeter para realizar testes de carga em aplicações WEB

  1. 1. Utilizando JMeter para realizar testes de carga em aplicações Web Robinson Castilho castilho@bacarin.com.br Bacarin Software Ltda JUGMS
  2. 2. Agenda ● Apresentação ● Motivação ● Visão Geral JMeter ● Principais elementos ● Teste prático ● Conclusão ● Perguntas & Respostas ● Coffe-break :)
  3. 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. 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. 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
  6. 6. Caracterí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
  7. 7. Requisitos 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
  8. 8. Tela Inicial JMeter
  9. 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. 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. 11. Elementos do JMeter ● Listener: Visualizar resultados do teste ● Configuration Elements: Configurar dados padrão ● Assertions: Verificar respostas obtidas
  12. 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
  13. 13. Elemento Test Plan
  14. 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. 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, ...
  16. 16. Elemento Config – Http Request
  17. 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
  18. 18. Elemento Thread Group
  19. 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. 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. 21. Elemento Sampler ● Executa a requisição ao servidor ● Está sempre associado a um Thread Group ● Podemos implementar Sampler customizados ● Usaremos: Http Request
  22. 22. Elemento Sampler
  23. 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. 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. 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
  26. 26. Elemento Listener
  27. 27. Exemplo Prático
  28. 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. 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. 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. 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!!!
  32. 32. Perguntas & Respostas
  33. 33. Visite-nos http://www.jugms.com.br http://www.bacarin.com.br
  34. 34. Bibliografia ● [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
  35. 35. Elaborado e revisado por Robinson Castilho castilho@bacarin.com.br 20/09/2008
  36. 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.

×