Utilizando JMeter para realizar testes de carga em aplicações WEB
-
Upload
freedom-dayms -
Category
Technology
-
view
18.834 -
download
1
description
Transcript of Utilizando JMeter para realizar testes de carga em aplicações WEB
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.