Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução
-
Upload
beatriz-makiyama-celestino -
Category
Technology
-
view
142 -
download
0
Transcript of Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução
![Page 1: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/1.jpg)
Testes de Performance com JMeterComo interpretar resultados e otimizar a execução
![Page 2: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/2.jpg)
Edlaine ZamoraDesenvolvedora Java Web
Beatriz CelestinoAnalista de testes
![Page 3: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/3.jpg)
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
![Page 4: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/4.jpg)
Introdução aos testes de PerformancePor que testar o desempenho?
![Page 5: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/5.jpg)
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.
![Page 6: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/6.jpg)
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?
![Page 7: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/7.jpg)
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?
![Page 8: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/8.jpg)
Estratégias de testes de performance
● Teste de stressTesta 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?
![Page 9: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/9.jpg)
Processo
![Page 10: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/10.jpg)
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.
![Page 11: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/11.jpg)
JMeter - Processo
![Page 12: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/12.jpg)
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.
![Page 13: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/13.jpg)
Exemplos melhorias detectadas nos testes
Aumentar recursos de
hardware do servidor
(CPU, RAM, discos).
![Page 14: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/14.jpg)
Exemplos melhorias detectadas nos testes
Diminuir tamanho ou número de
arquivos como CSS, imagens,
JavaScript, ícones, entre outros.
(Minificação e Sprite CSS)
![Page 15: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/15.jpg)
Exemplos melhorias detectadas nos testes
Otimizar algoritmos.
![Page 16: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/16.jpg)
Exemplos melhorias detectadas nos testes
Utilizar cache de dados que
possui um maior desempenho
ou otimizar o atual banco de
dados.
![Page 17: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/17.jpg)
Hands-on• Infraestrutura: JMeter, Firefox e Java.• Qual sistema vamos testar?
Sistema alvo: http://jmeterapp.herokuapp.com/
![Page 18: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/18.jpg)
Hands-on
• Adicionar e configurar Grupo de usuário (Thread Group)
![Page 19: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/19.jpg)
Hands-on
• Adicionar Área de trabalho (WorkBench)
![Page 20: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/20.jpg)
Hands-on• Configurar Área de trabalho
![Page 21: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/21.jpg)
Hands-on• Configuração do Firefox
![Page 22: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/22.jpg)
Hands-on
• Salvar o Plano de teste
![Page 23: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/23.jpg)
Hands-on
- Gravar o Cenário Acessar o sistema
![Page 24: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/24.jpg)
Hands-on- Adicionar “Ouvinte”
![Page 25: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/25.jpg)
Hands-on
- Tempo de execução- Tempo de Carga - Latência
- Número dos usuários ativos- Limpar os testes
![Page 26: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/26.jpg)
Hands-on
• Refatorar os testes• Renomear as requisições
![Page 27: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/27.jpg)
Hands-on
• Adicionar variáveis
- Plano de teste
![Page 28: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/28.jpg)
Hands-on
- Variáveis Definidas Pelo Usuário
![Page 29: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/29.jpg)
Hands-on
• Gravação de Login• Refatorar• Executar
![Page 30: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/30.jpg)
Hands-on
• Erro da execução
• Correlação de dados• EX: TOKEN, VIEWSTATE, JSESSIONID...
![Page 31: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/31.jpg)
Hands-on
• Adicionar o “Debug pós-processador”
- Executar
![Page 32: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/32.jpg)
Hands-on
• Adicionar o Extractor de Expressão Regular• CSRF-TOKEN=(.*)
![Page 33: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/33.jpg)
Hands-on
• Adicionar o “Gerenciador de Cookie HTTP”
![Page 34: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/34.jpg)
Hands-on
- Substituir as variáveis
- Executar
![Page 35: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/35.jpg)
Hands-on
• Continuar a gravação… • Terminar o Cenário 1 com o logout
• Cenário 2: Cadastro de Pessoa
![Page 36: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/36.jpg)
Hands-on• Parametrização com DDT
• Criar um arquivo “.txt”
• Configuração dos dados CSV
![Page 37: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/37.jpg)
Hands-on
Outra opção: Dados randômicos
__Random(1,10000000)
![Page 38: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/38.jpg)
Hands-on
- Relatório de Sumário
![Page 39: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/39.jpg)
Hands-on
• Adicionar asserções• Asserção de Duração
![Page 40: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/40.jpg)
Hands-on
• Adicionar asserções• Asserção de Resposta
![Page 41: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/41.jpg)
Hands-on
• Configuração Asserções de Resposta
![Page 42: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/42.jpg)
Hands-on
• Extractor XPath• Não é recomendável.
• Localização por xpath
html/head/title/text()
![Page 43: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/43.jpg)
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
![Page 44: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/44.jpg)
Hands-on
![Page 45: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/45.jpg)
Hands-on
• Requisição JDBC
![Page 46: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/46.jpg)
Hands-on
• Configuração Requisição JDBC
![Page 47: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/47.jpg)
Hands-on
• Passar parâmetro
![Page 48: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/48.jpg)
Remote Control
• São divididas entre: Master e Slave;
• Para configuração da Master:• Configuração do jmeter.properties
![Page 49: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/49.jpg)
Remote Control
• Para configuração SLAVE:• Configuração do jmeter.properties
• Executar o jmeter-server.bat com a porta
![Page 50: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/50.jpg)
Ferramentas
- Web Page Analyzerhttp://www.websiteoptimization.com/services/analyze/
- PageSpeed Insightshttps://developers.google.com/speed/pagespeed/insights/
- Medir banda largahttp://www.brasilbandalarga.com.br/index.php/speedtest
![Page 51: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/51.jpg)
Ferramentas
• JVisualVM
• Monitor de desempenho
• NewRelic*
• BlazeMeter*
• BlazeMeter Sense*
![Page 52: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/52.jpg)
14 dicas e sugestões de boas práticas
1. Use o mínimo de “ouvintes” possíveis na execução.
![Page 53: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/53.jpg)
14 dicas e sugestões de boas práticas
2. Use “árvore de resultados” apenas com o log de erros ativo.
![Page 54: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/54.jpg)
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.
![Page 55: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/55.jpg)
14 dicas e sugestões de boas práticas
4. Mantenha seu banco de dados controlado.
![Page 56: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/56.jpg)
14 dicas e sugestões de boas práticas
5. Analise a capacidade do computador.
![Page 57: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/57.jpg)
14 dicas e sugestões de boas práticas
6. Use o modo não-GUI: jmeter -n -t teste.jmx -l test.jtl
![Page 58: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/58.jpg)
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
![Page 59: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/59.jpg)
14 dicas e sugestões de boas práticas
8. Saiba da existência do redirecionamento de hosts
• C:\Windows\System32\drivers\etc\hosts
![Page 60: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/60.jpg)
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.
![Page 61: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/61.jpg)
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.
![Page 62: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/62.jpg)
14 dicas e sugestões de boas práticas
11. Salve os dados em CSV em vez de XML.
![Page 63: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/63.jpg)
14 dicas e sugestões de boas práticas
12. Não execute os testes na rede local.
![Page 64: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/64.jpg)
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.
![Page 65: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/65.jpg)
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
![Page 66: Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução](https://reader035.fdocuments.net/reader035/viewer/2022082204/58a970891a28ab0a0a8b45e9/html5/thumbnails/66.jpg)
Refênciashttp://jmeter.apache.org/usermanual/index.html
http://www.freetest.net.br/downloads/Ferramentas/JMeter/Manual_JMeter.
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