SlideShare une entreprise Scribd logo
1  sur  67
Télécharger pour lire hors ligne
Testes de Performance
com JMeter
Como interpretar resultados e
otimizar a execução
Edlaine Zamora
Desenvolvedora Java Web
Beatriz Celestino
Analista de testes
Agenda
•Introdução aos testes de Performance
•Estratégias de testes de Performance
•Ferramenta JMeter
•Exemplos de melhorias detectadas no teste
•Hands-on
•Dicas e sugestões de boas práticas
Introdução aos testes de Performance
Por que testar o desempenho?
Introdução aos testes de Performance
Teste de performance é aquele em que
submetemos o sistema a uma avaliação de carga,
stress ou desempenho para avaliar se os
resultados estão de acordo com o esperado,
garantindo assim a qualidade do sistema.
Estratégias de testes de performance
● Teste de carga
Testa o software sob as condições normais de uso. Ex.:
tempo de resposta, número de transações por minuto,
usuários simultâneos etc. O teste é iniciado com uma
carga baixa e vai aumentando gradativamente.
Quantas transações serão suportadas por minuto
quando aumentarmos os usuários simultâneos para
2.000, 3.000, 4.000?
Estratégias de testes de performance
● Teste de desempenho (estabilidade)
Testa se o sistema se mantém funcionando de maneira
satisfatória após um período de uso. Serve para medirmos o
que a aplicação já suporta. É executado com uma carga
constante e mantido por horas. Neste caso, é feita a análise
do tempo de resposta do sistema.
A aplicação suporta 1.000 transações por minuto com 1.000
usuários simultâneos?
Estratégias de testes de performance
● Teste de stress
Testa o software sob condições extremas de uso. Grande volume
de transações e usuários simultâneos. Picos excessivos de carga
em curtos períodos de tempo.
Quantas transações por minuto solicitadas por 5.000, 6.000,
7.000 usuários simultâneos, serão suportadas pela aplicação sob
condições não especificadas do software e até mesmo do próprio
hardware?
Processo
Ferramenta
JMeter
• Gratuito e Multiplataforma
• Gera dados em CSV, Gráficos e Tabelas
• Execução distribuída
• Controle de variáveis
• Suporta programação
• Suporta diversos tipos de servidores: web - HTTP,
HTTPS, SOAP, Database via JDBC, LDAP, JMS,
MAIL - POP3, etc.
JMeter - Processo
Ferramenta
JMeter
• Tempo da amostra: Tempo total da requisição em
m/s.
• Estado: Mostra se a requisição foi executada com
sucesso ou se houve falhas.
• Bytes: Quantidade de dados retornados pelo servidor.
Exemplos melhorias detectadas nos testes
Aumentar recursos de
hardware do servidor
(CPU, RAM, discos).
Exemplos melhorias detectadas nos testes
Diminuir tamanho ou número de
arquivos como CSS, imagens,
JavaScript, ícones, entre outros.
(Minificação e Sprite CSS)
Exemplos melhorias detectadas nos testes
Otimizar algoritmos.
Exemplos melhorias detectadas nos testes
Utilizar cache de dados que
possui um maior desempenho
ou otimizar o atual banco de
dados.
Hands-on
• Infraestrutura: JMeter, Firefox e Java.
• Qual sistema vamos testar?
Sistema alvo: http://jmeterapp.herokuapp.com/
Hands-on
• Adicionar e configurar Grupo de usuário (Thread Group)
Hands-on
• Adicionar Área de trabalho (WorkBench)
Hands-on
• Configurar Área de trabalho
Hands-on
• Configuração do Firefox
Hands-on
• Salvar o Plano de teste
Hands-on
- Gravar o Cenário
Acessar o sistema
Hands-on
- Adicionar “Ouvinte”
Hands-on
- Tempo de execução
- Tempo de Carga - Latência
- Número dos usuários ativos
- Limpar os testes
Hands-on
• Refatorar os testes
• Renomear as requisições
Hands-on
• Adicionar variáveis
- Plano de teste
Hands-on
- Variáveis Definidas Pelo Usuário
Hands-on
• Gravação de Login
• Refatorar
• Executar
Hands-on
• Erro da execução
• Correlação de dados
• EX: TOKEN, VIEWSTATE, JSESSIONID...
Hands-on
• Adicionar o “Debug pós-processador”
- Executar
Hands-on
• Adicionar o Extractor de Expressão Regular
• CSRF-TOKEN=(.*)
Hands-on
• Adicionar o “Gerenciador de Cookie HTTP”
Hands-on
- Substituir as variáveis
- Executar
Hands-on
• Continuar a gravação…
• Terminar o Cenário 1 com o logout
• Cenário 2: Cadastro de Pessoa
Hands-on
• Parametrização com DDT
• Criar um arquivo “.txt”
• Configuração dos dados CSV
Hands-on
Outra opção: Dados randômicos
__Random(1,10000000)
Hands-on
- Relatório de Sumário
Hands-on
• Adicionar asserções
• Asserção de Duração
Hands-on
• Adicionar asserções
• Asserção de Resposta
Hands-on
• Configuração Asserções de Resposta
Hands-on
• Extractor XPath
• Não é recomendável.
• Localização por xpath
html/head/title/text()
Hands-on
• Configuração da Conexão JDBC
URL do Banco:
jdbc:postgresql://ec2-54-243-249-144.compute-1.amazonaws.com:5432/d6bvvp0adntg09?ssl
=true&sslfactory=org.postgresql.ssl.NonValidatingFactory
Classe driver JDBC:org.postgresql.Driver
user: lgwbjatlrtmhga
senha: Xw1tyF-dMibSMfWulBQHfsP0Xk
Cuidado com o espaço vazio
Hands-on
Hands-on
• Requisição JDBC
Hands-on
• Configuração Requisição JDBC
Hands-on
• Passar parâmetro
Remote Control
• São divididas entre: Master e Slave;
• Para configuração da Master:
• Configuração do jmeter.properties
Remote Control
• Para configuração SLAVE:
• Configuração do jmeter.properties
• Executar o jmeter-server.bat com a porta
Ferramentas
- Web Page Analyzer
http://www.websiteoptimization.com/services/analyze/
- PageSpeed Insights
https://developers.google.com/speed/pagespeed/insigh
ts/
- Medir banda larga
http://www.brasilbandalarga.com.br/index.php/speedte
st
Ferramentas
• JVisualVM
• Monitor de desempenho
• NewRelic*
• BlazeMeter*
• BlazeMeter Sense*
14 dicas e sugestões de boas práticas
1. Use o mínimo de “ouvintes” possíveis na execução.
14 dicas e sugestões de boas práticas
2. Use “árvore de resultados” apenas com o log de erros ativo.
14 dicas e sugestões de boas práticas
3. Aumente a memória heap do JMeter para até 75% da capacidade
do computador que está executando os testes.
Evite o Out Of Memory Error.
14 dicas e sugestões de boas práticas
4. Mantenha seu banco de dados controlado.
14 dicas e sugestões de boas práticas
5. Analise a capacidade do computador.
14 dicas e sugestões de boas práticas
6. Use o modo não-GUI: jmeter -n -t teste.jmx -l test.jtl
14 dicas e sugestões de boas práticas
7. Habilite/mexa nas propriedades do JMeter, seja curioso (a).
• Habilitar Cookie/ RMI / LOG são os principais
14 dicas e sugestões de boas práticas
8. Saiba da existência do redirecionamento de hosts
• C:WindowsSystem32driversetchosts
14 dicas e sugestões de boas práticas
9. Mantenha a infra-estrutura de testes o mais próximo possível do
ambiente de produção.
14 dicas e sugestões de boas práticas
10. Envolva testadores, administradores de banco de dados, arquiteto
de rede, de software e desenvolvedores no processo.
14 dicas e sugestões de boas práticas
11. Salve os dados em CSV em vez de XML.
14 dicas e sugestões de boas práticas
12. Não execute os testes na rede local.
14 dicas e sugestões de boas práticas
13. Execute o mesmo conjunto de testes várias vezes no mesmo
dia e durante vários dias na semana para garantir que os resultados
são consistentes.
14 dicas e sugestões de boas práticas
14. Stakeholders não querem relatório com gráficos e tabelas
confusas, eles querem conclusões e sugestões
Refências
http://jmeter.apache.org/usermanual/index.html
http://www.freetest.net.br/downloads/Ferramentas/JMeter/Manual_JMeter.
pdf
https://msdn.microsoft.com/en-us/library/bb924375.aspx
http://jmeter.com.br/2013/02/como-rodar-o-jmeter-sem-interface-grafica/
http://jmeter.com.br/2013/04/extraia-o-maximo-de-performance-do-jmeter/
http://www.w3ii.com/en-US/jmeter/jmeter_best_practices.html
Obrigada!
www.edlainezamora.com.br
edlainetsz1@hotmail.com
@edlainezamora
makiyama.beatriz@gmail.com

Contenu connexe

Tendances

Performance testing using Jmeter for apps which needs authentication
Performance testing using Jmeter for apps which needs authenticationPerformance testing using Jmeter for apps which needs authentication
Performance testing using Jmeter for apps which needs authentication
Jay Jha
 

Tendances (20)

Performance testing using Jmeter for apps which needs authentication
Performance testing using Jmeter for apps which needs authenticationPerformance testing using Jmeter for apps which needs authentication
Performance testing using Jmeter for apps which needs authentication
 
JMeter Load Testing | Load Testing Using JMmeter | JMeter Tutorial For Beginn...
JMeter Load Testing | Load Testing Using JMmeter | JMeter Tutorial For Beginn...JMeter Load Testing | Load Testing Using JMmeter | JMeter Tutorial For Beginn...
JMeter Load Testing | Load Testing Using JMmeter | JMeter Tutorial For Beginn...
 
Performance Testing With Jmeter
Performance Testing With JmeterPerformance Testing With Jmeter
Performance Testing With Jmeter
 
Load Testing and JMeter Presentation
Load Testing and JMeter PresentationLoad Testing and JMeter Presentation
Load Testing and JMeter Presentation
 
Performance testing with Jmeter
Performance testing with JmeterPerformance testing with Jmeter
Performance testing with Jmeter
 
J Meter Intro
J Meter IntroJ Meter Intro
J Meter Intro
 
Performance testing with JMeter
Performance testing with JMeterPerformance testing with JMeter
Performance testing with JMeter
 
Load testing with J meter
Load testing with J meterLoad testing with J meter
Load testing with J meter
 
Introduction to jmeter
Introduction to jmeterIntroduction to jmeter
Introduction to jmeter
 
Performance testing with jmeter
Performance testing with jmeter Performance testing with jmeter
Performance testing with jmeter
 
Performance testing using jmeter
Performance testing using jmeterPerformance testing using jmeter
Performance testing using jmeter
 
Utilizando JMeter para realizar testes de carga em aplicações WEB
Utilizando JMeter para realizar testes de carga em aplicações WEBUtilizando JMeter para realizar testes de carga em aplicações WEB
Utilizando JMeter para realizar testes de carga em aplicações WEB
 
Apache JMeter - A brief introduction
Apache JMeter - A brief introductionApache JMeter - A brief introduction
Apache JMeter - A brief introduction
 
Apache jMeter
Apache jMeterApache jMeter
Apache jMeter
 
[GUTS-RS] Testes de Performance
 [GUTS-RS] Testes de Performance [GUTS-RS] Testes de Performance
[GUTS-RS] Testes de Performance
 
Load testing jmeter
Load testing jmeterLoad testing jmeter
Load testing jmeter
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Perfromane Test Tool jmeter
Perfromane Test Tool jmeterPerfromane Test Tool jmeter
Perfromane Test Tool jmeter
 
Usando JMeter para testar sua aplicação JSF
Usando JMeter para testar sua aplicação JSFUsando JMeter para testar sua aplicação JSF
Usando JMeter para testar sua aplicação JSF
 
JMeter
JMeterJMeter
JMeter
 

Similaire à Testes de Performance com JMeter

Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?
Igor Abade
 
2 Ads
2 Ads2 Ads
2 Ads
lcbj
 
performance para qualidade de desenvolvimento de software
performance para qualidade de desenvolvimento de softwareperformance para qualidade de desenvolvimento de software
performance para qualidade de desenvolvimento de software
Antonio Lobato
 

Similaire à Testes de Performance com JMeter (20)

TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
 
Overview de QA
Overview de QA Overview de QA
Overview de QA
 
Webcast WebSphere Portal Performance
Webcast WebSphere Portal PerformanceWebcast WebSphere Portal Performance
Webcast WebSphere Portal Performance
 
TechEd_OFC305
TechEd_OFC305TechEd_OFC305
TechEd_OFC305
 
Dba Ciclo Palestra P5 V1a
Dba Ciclo Palestra P5 V1aDba Ciclo Palestra P5 V1a
Dba Ciclo Palestra P5 V1a
 
Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?
 
Automação de testes de desempenho para sistemas web utilizando a ferramenta J...
Automação de testes de desempenho para sistemas web utilizando a ferramenta J...Automação de testes de desempenho para sistemas web utilizando a ferramenta J...
Automação de testes de desempenho para sistemas web utilizando a ferramenta J...
 
2 Ads
2 Ads2 Ads
2 Ads
 
TDC2018SP | Trilha Testes - Testes de carga e performance com Gatling.io
TDC2018SP | Trilha Testes - Testes de carga e performance com Gatling.ioTDC2018SP | Trilha Testes - Testes de carga e performance com Gatling.io
TDC2018SP | Trilha Testes - Testes de carga e performance com Gatling.io
 
Testes de Performance - Drupal camp Florianópolis
Testes de Performance - Drupal camp FlorianópolisTestes de Performance - Drupal camp Florianópolis
Testes de Performance - Drupal camp Florianópolis
 
J Meter
J MeterJ Meter
J Meter
 
Medindo O Desempenho De Processadores
Medindo O Desempenho De ProcessadoresMedindo O Desempenho De Processadores
Medindo O Desempenho De Processadores
 
O que eu deveria saber antes de testar performance?
O que eu deveria saber antes de testar performance?O que eu deveria saber antes de testar performance?
O que eu deveria saber antes de testar performance?
 
performance para qualidade de desenvolvimento de software
performance para qualidade de desenvolvimento de softwareperformance para qualidade de desenvolvimento de software
performance para qualidade de desenvolvimento de software
 
O que eu deveria saber antes de testar performance?
O que eu deveria saber antes de testar performance?O que eu deveria saber antes de testar performance?
O que eu deveria saber antes de testar performance?
 
Webshow - Automação Laboratorial I
Webshow - Automação Laboratorial IWebshow - Automação Laboratorial I
Webshow - Automação Laboratorial I
 
Teste de Desempenho, muito além do JMeter
Teste de Desempenho, muito além do JMeterTeste de Desempenho, muito além do JMeter
Teste de Desempenho, muito além do JMeter
 
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
 
GOTEST-Aula3-Automacao-Processo-Testes.pdf
GOTEST-Aula3-Automacao-Processo-Testes.pdfGOTEST-Aula3-Automacao-Processo-Testes.pdf
GOTEST-Aula3-Automacao-Processo-Testes.pdf
 
Falando de Testes de Desempenho - por Evandro Grezeli
Falando de Testes de Desempenho - por Evandro GrezeliFalando de Testes de Desempenho - por Evandro Grezeli
Falando de Testes de Desempenho - por Evandro Grezeli
 

Plus de Edlaine Zamora

Plus de Edlaine Zamora (11)

Arquitetura evolutiva
Arquitetura evolutivaArquitetura evolutiva
Arquitetura evolutiva
 
ArchUnit-Garantindo a Integridade dos seus Padrões Arquiteturais em Java
ArchUnit-Garantindo a Integridade dos seus Padrões Arquiteturais em JavaArchUnit-Garantindo a Integridade dos seus Padrões Arquiteturais em Java
ArchUnit-Garantindo a Integridade dos seus Padrões Arquiteturais em Java
 
Compilar Não Basta: Escreva código para pessoas e não apenas para máquinas - ...
Compilar Não Basta: Escreva código para pessoas e não apenas para máquinas - ...Compilar Não Basta: Escreva código para pessoas e não apenas para máquinas - ...
Compilar Não Basta: Escreva código para pessoas e não apenas para máquinas - ...
 
Microsoft Xamarin
Microsoft XamarinMicrosoft Xamarin
Microsoft Xamarin
 
TDC Floripa 2018 - Metralhando sua API
TDC Floripa 2018 - Metralhando sua APITDC Floripa 2018 - Metralhando sua API
TDC Floripa 2018 - Metralhando sua API
 
Escreva código para pessoas além de máquinas
Escreva código para pessoas além de máquinasEscreva código para pessoas além de máquinas
Escreva código para pessoas além de máquinas
 
Como testar a performance de ap is utilizando uma ferramenta simples e gratuita?
Como testar a performance de ap is utilizando uma ferramenta simples e gratuita?Como testar a performance de ap is utilizando uma ferramenta simples e gratuita?
Como testar a performance de ap is utilizando uma ferramenta simples e gratuita?
 
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipster
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipsterGerando aplicações Spring Boot e AngularJS com gerador de código JHipster
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipster
 
Como analisar a vulnerabilidade de uma aplicação web com o Kali Linux
Como analisar a vulnerabilidade de uma aplicação web com o Kali LinuxComo analisar a vulnerabilidade de uma aplicação web com o Kali Linux
Como analisar a vulnerabilidade de uma aplicação web com o Kali Linux
 
Jhipster
JhipsterJhipster
Jhipster
 
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ã...
 

Testes de Performance com JMeter