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

21,061 views

Published on

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

(Robinson Castilho / Bacarin)

Published in: Technology

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.

×