utilizando jmeter para realizar testes de carga em aplicações web

36
Utilizando Utilizando JMeter JMeter para realizar para realizar testes de carga em aplicações testes de carga em aplicações Web Web Robinson Castilho Robinson Castilho [email protected] [email protected] Bacarin Software Ltda Bacarin Software Ltda JUGMS JUGMS

Upload: freedom-dayms

Post on 24-May-2015

18.834 views

Category:

Technology


1 download

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

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

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

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

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

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

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

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

Tela Inicial JMeterTela Inicial JMeter

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

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

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

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

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

Elemento Elemento Test PlanTest Plan

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

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

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

Elemento Elemento ConfigConfig – Http Request – Http Request

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

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

Elemento Elemento Thread GroupThread Group

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

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

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

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

Elemento Elemento SamplerSampler

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

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

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

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

Elemento Elemento ListenerListener

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

Exemplo PráticoExemplo Prático

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

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

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

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

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

Perguntas & RespostasPerguntas & Respostas

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

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

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 35: Utilizando JMeter para realizar testes de carga em aplicações WEB

Elaborado e revisado por Robinson Castilho

[email protected]/09/2008

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

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.