Upload
freedom-dayms
View
18.834
Download
1
Embed Size (px)
DESCRIPTION
Utilizando JMeterpara realizar testesde carga emaplicações WEB(Robinson Castilho / Bacarin)
Citation preview
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
AgendaAgenda● Apresentação● Motivação● Visão Geral JMeter● Principais elementos● Teste prático● Conclusão● Perguntas & Respostas● Coffe-break :)
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
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?
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
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
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
Tela Inicial JMeterTela Inicial JMeter
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
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)
Elementos do JMeterElementos do JMeter
● Listener: Visualizar resultados do teste
● Configuration Elements: Configurar dados padrão
● Assertions: Verificar respostas obtidas
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
Elemento Elemento Test PlanTest Plan
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
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, ...
Elemento Elemento ConfigConfig – Http Request – Http Request
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
Elemento Elemento Thread GroupThread Group
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
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)
Elemento SamplerElemento Sampler
● Executa a requisição ao servidor
● Está sempre associado a um Thread Group
● Podemos implementar Sampler customizados
● Usaremos: Http Request
Elemento Elemento SamplerSampler
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
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
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
Elemento Elemento ListenerListener
Exemplo PráticoExemplo Prático
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
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>
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 :)
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!!!
Perguntas & RespostasPerguntas & Respostas
Visite-nosVisite-nos
http://www.jugms.com.brhttp://www.bacarin.com.br
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
Elaborado e revisado por Robinson Castilho
[email protected]/09/2008
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.