SlideShare uma empresa Scribd logo
1 de 36
Baixar para ler offline
Utilizando   JMeter para realizar
 testes de carga em aplicações
                                   Web



                          Robinson Castilho
                   castilho@bacarin.com.br
                      Bacarin Software Ltda
                                     JUGMS
Agenda
●
    Apresentação
●
    Motivação
●
    Visão Geral JMeter
●
    Principais elementos
●
    Teste prático
●
    Conclusão
●
    Perguntas & Respostas
●
    Coffe-break :)
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
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 é?
 ●
     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 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 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 JMeter
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
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)
Elementos do JMeter


   ●
       Listener: Visualizar resultados
       do teste
   ●
       Configuration Elements:
       Configurar dados padrão
   ●
       Assertions: Verificar
       respostas obtidas
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
Elemento Test Plan
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
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, ...
Elemento Config – Http Request
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
Elemento Thread Group
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
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)
Elemento Sampler

 ●
     Executa a requisição ao
     servidor
 ●
     Está sempre associado a um
     Thread Group
 ●
     Podemos implementar
     Sampler customizados
 ●
     Usaremos: Http Request
Elemento Sampler
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
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
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
Elemento Listener
Exemplo Prático
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 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>
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 :)
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!!!
Perguntas & Respostas
Visite-nos

http://www.jugms.com.br
http://www.bacarin.com.br
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
Elaborado e revisado por
        Robinson Castilho
 castilho@bacarin.com.br
               20/09/2008
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.

Mais conteúdo relacionado

Mais procurados

Integracao Contínua com CruiseControl e phpUnderControl
Integracao Contínua com CruiseControl e phpUnderControlIntegracao Contínua com CruiseControl e phpUnderControl
Integracao Contínua com CruiseControl e phpUnderControlDiego Tremper
 
Integração Contínua com CruiseControl e phpUnderControl
Integração Contínua com CruiseControl e phpUnderControlIntegração Contínua com CruiseControl e phpUnderControl
Integração Contínua com CruiseControl e phpUnderControlDiego Tremper
 
Java Web 4 - Servlets e JSP 2
Java Web 4 - Servlets e JSP 2Java Web 4 - Servlets e JSP 2
Java Web 4 - Servlets e JSP 2Eduardo Mendes
 
WEB 2 - Aula 01 - 02.08
WEB 2 - Aula 01 - 02.08WEB 2 - Aula 01 - 02.08
WEB 2 - Aula 01 - 02.08Gilson Silva
 
Java Web 5 - JSP, Expression Language e Taglibs
Java Web 5 - JSP, Expression Language e TaglibsJava Web 5 - JSP, Expression Language e Taglibs
Java Web 5 - JSP, Expression Language e TaglibsEduardo Mendes
 
Introdução ao Desenvolvimento de aplicações WEB com JSP
Introdução ao Desenvolvimento de aplicações WEB com JSPIntrodução ao Desenvolvimento de aplicações WEB com JSP
Introdução ao Desenvolvimento de aplicações WEB com JSPManoel Afonso
 
Java Web 3 - Servlets e JSP 1
Java Web 3 - Servlets e JSP 1Java Web 3 - Servlets e JSP 1
Java Web 3 - Servlets e JSP 1Eduardo Mendes
 
Servlet jsp tomcat 8
Servlet jsp tomcat 8Servlet jsp tomcat 8
Servlet jsp tomcat 8maxrosan
 
Java Web - MVC básico com JSP e Servlets
Java Web - MVC básico com JSP e ServletsJava Web - MVC básico com JSP e Servlets
Java Web - MVC básico com JSP e ServletsEduardo Mendes
 
Tomada de Decisão baseada em testes de carga - The Developer`s Conference Sã...
Tomada de Decisão baseada em testes de carga - The Developer`s Conference Sã...Tomada de Decisão baseada em testes de carga - The Developer`s Conference Sã...
Tomada de Decisão baseada em testes de carga - The Developer`s Conference Sã...Edlaine Zamora
 
Minicurso Play Framework - Tão fácil que nem parece Java
Minicurso Play Framework - Tão fácil que nem parece JavaMinicurso Play Framework - Tão fácil que nem parece Java
Minicurso Play Framework - Tão fácil que nem parece JavaWandesson Soares
 
Java Web 2 - Ferramentas e configuração
Java Web 2 - Ferramentas e configuraçãoJava Web 2 - Ferramentas e configuração
Java Web 2 - Ferramentas e configuraçãoEduardo Mendes
 
Integração Contínua com Cruise Control e phpUnderControl
Integração Contínua com Cruise Control e phpUnderControlIntegração Contínua com Cruise Control e phpUnderControl
Integração Contínua com Cruise Control e phpUnderControlDiego Tremper
 

Mais procurados (17)

Maven na prática
Maven na práticaMaven na prática
Maven na prática
 
Integracao Contínua com CruiseControl e phpUnderControl
Integracao Contínua com CruiseControl e phpUnderControlIntegracao Contínua com CruiseControl e phpUnderControl
Integracao Contínua com CruiseControl e phpUnderControl
 
Integração Contínua com CruiseControl e phpUnderControl
Integração Contínua com CruiseControl e phpUnderControlIntegração Contínua com CruiseControl e phpUnderControl
Integração Contínua com CruiseControl e phpUnderControl
 
Java Web 4 - Servlets e JSP 2
Java Web 4 - Servlets e JSP 2Java Web 4 - Servlets e JSP 2
Java Web 4 - Servlets e JSP 2
 
WEB 2 - Aula 01 - 02.08
WEB 2 - Aula 01 - 02.08WEB 2 - Aula 01 - 02.08
WEB 2 - Aula 01 - 02.08
 
Java Web 5 - JSP, Expression Language e Taglibs
Java Web 5 - JSP, Expression Language e TaglibsJava Web 5 - JSP, Expression Language e Taglibs
Java Web 5 - JSP, Expression Language e Taglibs
 
Ruby On Rails Regis
Ruby On Rails RegisRuby On Rails Regis
Ruby On Rails Regis
 
Introdução ao Desenvolvimento de aplicações WEB com JSP
Introdução ao Desenvolvimento de aplicações WEB com JSPIntrodução ao Desenvolvimento de aplicações WEB com JSP
Introdução ao Desenvolvimento de aplicações WEB com JSP
 
Curso de JSP
Curso de JSPCurso de JSP
Curso de JSP
 
Java Web 3 - Servlets e JSP 1
Java Web 3 - Servlets e JSP 1Java Web 3 - Servlets e JSP 1
Java Web 3 - Servlets e JSP 1
 
Servlet jsp tomcat 8
Servlet jsp tomcat 8Servlet jsp tomcat 8
Servlet jsp tomcat 8
 
Java Web - MVC básico com JSP e Servlets
Java Web - MVC básico com JSP e ServletsJava Web - MVC básico com JSP e Servlets
Java Web - MVC básico com JSP e Servlets
 
Tomada de Decisão baseada em testes de carga - The Developer`s Conference Sã...
Tomada de Decisão baseada em testes de carga - The Developer`s Conference Sã...Tomada de Decisão baseada em testes de carga - The Developer`s Conference Sã...
Tomada de Decisão baseada em testes de carga - The Developer`s Conference Sã...
 
servlet-introducao
servlet-introducaoservlet-introducao
servlet-introducao
 
Minicurso Play Framework - Tão fácil que nem parece Java
Minicurso Play Framework - Tão fácil que nem parece JavaMinicurso Play Framework - Tão fácil que nem parece Java
Minicurso Play Framework - Tão fácil que nem parece Java
 
Java Web 2 - Ferramentas e configuração
Java Web 2 - Ferramentas e configuraçãoJava Web 2 - Ferramentas e configuração
Java Web 2 - Ferramentas e configuração
 
Integração Contínua com Cruise Control e phpUnderControl
Integração Contínua com Cruise Control e phpUnderControlIntegração Contínua com Cruise Control e phpUnderControl
Integração Contínua com Cruise Control e phpUnderControl
 

Semelhante a J Meter

Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução
Treinamento: como usar o JMeter, interpretar resultados e otimizar a execuçãoTreinamento: como usar o JMeter, interpretar resultados e otimizar a execução
Treinamento: como usar o JMeter, interpretar resultados e otimizar a execuçãoBeatriz Makiyama Celestino
 
Palestra Testes Unidade Com JUnit
Palestra Testes Unidade Com JUnitPalestra Testes Unidade Com JUnit
Palestra Testes Unidade Com JUnitRobinson Castilho
 
Integração Contínua com CruiseControl e phpUnderControl
Integração Contínua com CruiseControl e phpUnderControlIntegração Contínua com CruiseControl e phpUnderControl
Integração Contínua com CruiseControl e phpUnderControlManuel Lemos
 
LabMM3 - Aula teórica 04
LabMM3 - Aula teórica 04LabMM3 - Aula teórica 04
LabMM3 - Aula teórica 04Carlos Santos
 
Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...
Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...
Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...Edlaine Zamora
 
Teste de Performance - 3º Encontro da ALATS
Teste de Performance - 3º Encontro da ALATSTeste de Performance - 3º Encontro da ALATS
Teste de Performance - 3º Encontro da ALATSFabrício Campos
 
Abrindo a caixa de ferramentas: atirando pedras com Jmeter
Abrindo a caixa de ferramentas: atirando pedras com JmeterAbrindo a caixa de ferramentas: atirando pedras com Jmeter
Abrindo a caixa de ferramentas: atirando pedras com JmeterEvandro Grezeli
 
GOTEST-Aula3-Automacao-Processo-Testes.pdf
GOTEST-Aula3-Automacao-Processo-Testes.pdfGOTEST-Aula3-Automacao-Processo-Testes.pdf
GOTEST-Aula3-Automacao-Processo-Testes.pdfRodolphoCesar2
 
Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...
Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...
Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...Claudinei Brito Junior
 
Paralelize seus testes web e mobile para ter feedbacks mais rápidos
Paralelize seus testes web e mobile para ter feedbacks mais rápidosParalelize seus testes web e mobile para ter feedbacks mais rápidos
Paralelize seus testes web e mobile para ter feedbacks mais rápidosElias Nogueira
 
Webcast WebSphere Portal Performance
Webcast WebSphere Portal PerformanceWebcast WebSphere Portal Performance
Webcast WebSphere Portal PerformanceAlex Barbosa Coqueiro
 
AutomaçãoWeb - Chaordic Academy
AutomaçãoWeb - Chaordic AcademyAutomaçãoWeb - Chaordic Academy
AutomaçãoWeb - Chaordic AcademyFausto Siqueira
 
TDC2016POA | Trilha Web - Front-end that scales
TDC2016POA | Trilha Web - Front-end that scalesTDC2016POA | Trilha Web - Front-end that scales
TDC2016POA | Trilha Web - Front-end that scalestdc-globalcode
 
Apostilava Java EE 5 - 2007
Apostilava Java EE 5 - 2007Apostilava Java EE 5 - 2007
Apostilava Java EE 5 - 2007Rafael Benevides
 
(A04 e A05) LabMM3 - JavaScript
(A04 e A05) LabMM3 - JavaScript(A04 e A05) LabMM3 - JavaScript
(A04 e A05) LabMM3 - JavaScriptCarlos Santos
 
Spring MVC Framework
Spring MVC FrameworkSpring MVC Framework
Spring MVC Frameworkelliando dias
 
Testes unitários x unit
Testes unitários   x unitTestes unitários   x unit
Testes unitários x unitLucas Marques
 

Semelhante a J Meter (20)

Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução
Treinamento: como usar o JMeter, interpretar resultados e otimizar a execuçãoTreinamento: como usar o JMeter, interpretar resultados e otimizar a execução
Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução
 
Palestra Testes Unidade Com JUnit
Palestra Testes Unidade Com JUnitPalestra Testes Unidade Com JUnit
Palestra Testes Unidade Com JUnit
 
Integração Contínua com CruiseControl e phpUnderControl
Integração Contínua com CruiseControl e phpUnderControlIntegração Contínua com CruiseControl e phpUnderControl
Integração Contínua com CruiseControl e phpUnderControl
 
LabMM3 - Aula teórica 04
LabMM3 - Aula teórica 04LabMM3 - Aula teórica 04
LabMM3 - Aula teórica 04
 
Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...
Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...
Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...
 
Teste de Performance - 3º Encontro da ALATS
Teste de Performance - 3º Encontro da ALATSTeste de Performance - 3º Encontro da ALATS
Teste de Performance - 3º Encontro da ALATS
 
Abrindo a caixa de ferramentas: atirando pedras com Jmeter
Abrindo a caixa de ferramentas: atirando pedras com JmeterAbrindo a caixa de ferramentas: atirando pedras com Jmeter
Abrindo a caixa de ferramentas: atirando pedras com Jmeter
 
GOTEST-Aula3-Automacao-Processo-Testes.pdf
GOTEST-Aula3-Automacao-Processo-Testes.pdfGOTEST-Aula3-Automacao-Processo-Testes.pdf
GOTEST-Aula3-Automacao-Processo-Testes.pdf
 
Be React. Do Tests!
Be React. Do Tests!Be React. Do Tests!
Be React. Do Tests!
 
Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...
Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...
Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...
 
Paralelize seus testes web e mobile para ter feedbacks mais rápidos
Paralelize seus testes web e mobile para ter feedbacks mais rápidosParalelize seus testes web e mobile para ter feedbacks mais rápidos
Paralelize seus testes web e mobile para ter feedbacks mais rápidos
 
JMeter
JMeterJMeter
JMeter
 
Webcast WebSphere Portal Performance
Webcast WebSphere Portal PerformanceWebcast WebSphere Portal Performance
Webcast WebSphere Portal Performance
 
AutomaçãoWeb - Chaordic Academy
AutomaçãoWeb - Chaordic AcademyAutomaçãoWeb - Chaordic Academy
AutomaçãoWeb - Chaordic Academy
 
Power mock
Power mockPower mock
Power mock
 
TDC2016POA | Trilha Web - Front-end that scales
TDC2016POA | Trilha Web - Front-end that scalesTDC2016POA | Trilha Web - Front-end that scales
TDC2016POA | Trilha Web - Front-end that scales
 
Apostilava Java EE 5 - 2007
Apostilava Java EE 5 - 2007Apostilava Java EE 5 - 2007
Apostilava Java EE 5 - 2007
 
(A04 e A05) LabMM3 - JavaScript
(A04 e A05) LabMM3 - JavaScript(A04 e A05) LabMM3 - JavaScript
(A04 e A05) LabMM3 - JavaScript
 
Spring MVC Framework
Spring MVC FrameworkSpring MVC Framework
Spring MVC Framework
 
Testes unitários x unit
Testes unitários   x unitTestes unitários   x unit
Testes unitários x unit
 

J Meter

  • 1. Utilizando JMeter para realizar testes de carga em aplicações Web Robinson Castilho castilho@bacarin.com.br Bacarin Software Ltda JUGMS
  • 2. Agenda ● Apresentação ● Motivação ● Visão Geral JMeter ● Principais elementos ● Teste prático ● Conclusão ● Perguntas & Respostas ● Coffe-break :)
  • 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. 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. 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. 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. 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
  • 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. 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. Elementos do JMeter ● Listener: Visualizar resultados do teste ● Configuration Elements: Configurar dados padrão ● Assertions: Verificar respostas obtidas
  • 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
  • 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. 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. Elemento Config – Http Request
  • 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
  • 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. 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. Elemento Sampler ● Executa a requisição ao servidor ● Está sempre associado a um Thread Group ● Podemos implementar Sampler customizados ● Usaremos: Http Request
  • 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. 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. 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
  • 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. 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. 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. 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!!!
  • 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. Elaborado e revisado por Robinson Castilho castilho@bacarin.com.br 20/09/2008
  • 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.