JMeter não é tudo que você precisa para fazer
Testes de Performance
Raphael Mantilha
Engenheiro Especialista em Qualidade de Software
Raphael Mantilha
Engenheiro Especialista em Qualidade de Software no
Coisas que eu gosto
Onde aprendi muito
Onde trabalhei e aprendi muito
AGENDA
AGENDA
1. Introduzindo Testes de Performance
2. Alguns Conceitos relativos à Testes de
Performance
3. Dicas de Estudo
1. Introduzindo
Testes de
Performance
O que é Teste de Performance?
É um tipo de Teste Não Funcional que permite, a partir da aplicação de carga sobre o ambiente
da solução, avaliar aspectos como:
Tempo de Resposta Throughput Escalabilidade
Utilização de Recursos Enfileiramento de Requisições Falhas e Sucessos
Por que Performance é importante?
Segundo a Amazon:
 Tempo médio de uma página da Internet deve ser de 2 segundos.
 57% dos usuários vão abandonar o site se a página levar mais de 3 segundos para carregar.
 80% dos usuários que abandonam o site não voltam.
 Usuário visualiza primeiro a página que carrega mais rápido.
 É alta a probabilidade do usuário voltar a comprar em um site no qual ele teve uma boa experiência.
 Uma diminuição de 1 segundo no tempo de carregamento das páginas custa, anualmente, 1,6 bilhão de dólares.
Mais cases em wpostats.com
Ênfase no Funcional x Ênfase na Performance
O cliente aceita ter menos funcionalidades (principalmente nas primeiras versões do sistema) porém, desde
os primeiros contatos com o software, ele não aceita ter performance ruim.
Performance ruim degrada muito a experiência do usuário.
Processo de Testes de Performance
A ferramenta de Teste de
Performance é importante
aqui !
Execução manual de Teste de Performance é problemática
Execução Automática de Teste de Performance
Processo de Testes de Performance
A ferramenta de Teste de
Performance é importante
aqui !
Tipos de Testes de Performance
Áreas que se relacionam com Testes de Performance
Arquitetura de Sistemas Redes e Protocolos
Linguagens de Programação Sistemas Operacionais Banco de Dados
Áreas que se relacionam com Testes de Performance
Segurança Estátística / Matemática
Planejamento e Gerenciamento Processos de Negócio Testes Funcionais
Algumas Informações sobre Testes de Performance
 Há diversos tipos de defeitos que podem causar problemas de performance.
Exemplos: Application Server, Database Server, Web Server, Rede.
 Testes de Performance podem ser planejados durante a execução dos Testes Funcionais, mas os
scripts devem ser construídos quando a aplicação está estável. Uma falha funcional interrompe a
criação de scripts ou a execução dos Testes de Performance.
 Testes de Performance devem envolver profissionais de diversas áreas.
 Testes de Performance devem executar cenários de carga da forma mais próxima possível do cenário
real de produção.
 Um bom planejamento é essencial para o sucesso do Teste de Performance. Um Plano de Teste de
Performance deve ser elaborado.
2. Alguns
Conceitos de
Testes de
Performance
Carga de Pico (Peak Load)
A carga sobre o sistema costuma não ser uniforme nem durante o dia nem durante as épocas do ano.
Carga de Pico refere-se ao período no qual o sistema está submetido à carga de maior intensidade.
Exemplo de distribuição da carga de usuários durante o dia Carga de Pico é diferente de Carga Média
Throughput
Throughput serve para mediar a quantidade de requisições processadas em relação a uma unidade de
tempo. Quando o limite do ambiente é atingido, as requisições são enfileiradas.
Think Time
Think Time corresponde ao intervalo de tempo entre duas requisições do usuário. Durante este
período, o servidor não faz processamento algum para o usuário em questão.
Ramp Up
Ramp Up é usado para gradualmente aumentar a carga de usuários acessando a aplicação.
Steady State
O Steady State corresponde ao intervalo de tempo mais importante para análise dos resultados do Teste de
Performance. Trata-se do período no qual a carga é estável e as medições melhor representam o uso da
aplicação/ambiente.
Scripts e Distribuição da Carga
Os scripts devem implementar os principais fluxos da aplicação e deve se levar em conta a importância de a
distribuição da carga de usuários simular a carga esperada em produção da melhor maneira possível.
O “Efeito Funil”
 Nem todas as requisições passam por
todas as camadas.
 Mais listeners/threads/connections
causam maior sobrecarga de
gerenciamento de recursos.
 O ideal é conseguir parametrizar o
ambiente de modo a obter o melhor
tempo de resposta e a melhor
utilização de hardware sem causar
sobrecarga.
Throughput x Utilização de Recursos x Tempo de Resposta
Com o aumento da carga e do throughput, espera-se que os tempos de resposta cresçam
exponencialmente quando o ponto de saturação do sistema for atingido.
Application Performance Management (APM)
É um framework conceitual que fornece uma abordagem sistemática voltada à análise de
performance de sistemas.
1. Mensurar a experiência do usuário.
2. Coletar métricas em tempo de execução do
sistema.
3. Definir transações de negócio.
4. Coletar métricas dos componentes.
5. Analisar, reportar e tomar decisões.
Application Performance Management (APM)
Exemplos de ferramentas de APM:
Application Performance Index (Apdex)
É um padrão aberto da indústria para medir o desempenho de sistemas através do nível de satisfação do usuário.
Primeiro precisamos ter definido qual é o Threshold desejado.
Threshold = Tempo ideal de resposta para sua aplicação
Threshold Base de Mercado (Tempo analisado de 7 dias)
API – 500ms
Browser – 3 a 7s
Transações:
Satisfatórias -> Até o Threshold (T)
Toleráveis -> Até 4*T
Frustradas -> Maior 4*T
Exemplo:
1000 requisições e Threshold = 2s
Satisfatórias: 800 requisições com tempo de resposta <= 2s
Toleráveis: 140 requisições com tempo de resposta entre 2s e 8s
Frustradas: 60 requisições com tempo de resposta > 8s
APDEX = (800 + (140/2)/1000 = 0,87
3. Dicas de Estudo
Performance Analysis for Java Websites
Autores: Stacy Joines
Ruth Willenborg
Ken Hygh
Editora: Addison-Wesley
Alguns Livros sobre Conceitos de Testes de Performance
Performance Testing Guidance
for Web Applications
Editora: Microsoft Press
Solving Enterprise
Applications
Performance Puzzles
Autor: Leonid Grinshpan
Editora: Wiley-IEEE Press
Você já ouviu falar em Teste de Performance de Sistemas? (escrito por Raphael Mantilha)
https://medium.com/@raphael.mantilha/voc%C3%AA-j%C3%A1-ouviu-falar-em-teste-de-performance-de-
sistemas-51c6c46ac14c
JMeter não é tudo que você precisa para fazer Testes de Performance (escrito por Raphael Mantilha)
https://medium.com/@raphael.mantilha/jmeter-n%C3%A3o-%C3%A9-tudo-que-voc%C3%AA-precisa-para-
fazer-testes-de-performance-b5c3ec83805
Pediram para fazer um Teste de Performance, quais perguntas devo fazer na reunião de
entendimento? (escrito por Tatiane Almeida)
https://medium.com/@almeidas.tatiane/me-pediram-para-fazer-um-teste-de-performance-quais-perguntas-
devo-fazer-na-reuni%C3%A3o-de-1ef7a731627d
Como documentar um Plano de Teste de Performance (escrito por Tatiane Almeida)
https://medium.com/@almeidas.tatiane/como-documentar-um-plano-de-teste-de-performance-3146aaec3d92
Artigos sobre Testes de Performance
Master Apache Jmeter From load testing to DevOps
Autores: Antonio Gomes Rodrigues
Bruno Demion (Milamber)
Philippe Mouawad
Editora: Leanpub
Disponível em http://leanpub.com/master-jmeter-from-load-test-to-devops
Livro e Curso sobre Ferramenta de Testes de Performance
Acesse em http://www.blazemeter.com/university/
Raphael Mantilha
Engenheiro Especialista em Qualidade de Software
raphael.mantilha@gmail.com
https://www.linkedin.com/in/raphaelmantilha

[GUTS-RS] Testes de Performance

  • 1.
    JMeter não étudo que você precisa para fazer Testes de Performance Raphael Mantilha Engenheiro Especialista em Qualidade de Software
  • 2.
    Raphael Mantilha Engenheiro Especialistaem Qualidade de Software no Coisas que eu gosto Onde aprendi muito Onde trabalhei e aprendi muito
  • 3.
    AGENDA AGENDA 1. Introduzindo Testesde Performance 2. Alguns Conceitos relativos à Testes de Performance 3. Dicas de Estudo
  • 4.
  • 5.
    O que éTeste de Performance? É um tipo de Teste Não Funcional que permite, a partir da aplicação de carga sobre o ambiente da solução, avaliar aspectos como: Tempo de Resposta Throughput Escalabilidade Utilização de Recursos Enfileiramento de Requisições Falhas e Sucessos
  • 6.
    Por que Performanceé importante? Segundo a Amazon:  Tempo médio de uma página da Internet deve ser de 2 segundos.  57% dos usuários vão abandonar o site se a página levar mais de 3 segundos para carregar.  80% dos usuários que abandonam o site não voltam.  Usuário visualiza primeiro a página que carrega mais rápido.  É alta a probabilidade do usuário voltar a comprar em um site no qual ele teve uma boa experiência.  Uma diminuição de 1 segundo no tempo de carregamento das páginas custa, anualmente, 1,6 bilhão de dólares. Mais cases em wpostats.com
  • 7.
    Ênfase no Funcionalx Ênfase na Performance O cliente aceita ter menos funcionalidades (principalmente nas primeiras versões do sistema) porém, desde os primeiros contatos com o software, ele não aceita ter performance ruim. Performance ruim degrada muito a experiência do usuário.
  • 8.
    Processo de Testesde Performance A ferramenta de Teste de Performance é importante aqui !
  • 9.
    Execução manual deTeste de Performance é problemática
  • 10.
    Execução Automática deTeste de Performance
  • 11.
    Processo de Testesde Performance A ferramenta de Teste de Performance é importante aqui !
  • 12.
    Tipos de Testesde Performance
  • 13.
    Áreas que serelacionam com Testes de Performance Arquitetura de Sistemas Redes e Protocolos Linguagens de Programação Sistemas Operacionais Banco de Dados
  • 14.
    Áreas que serelacionam com Testes de Performance Segurança Estátística / Matemática Planejamento e Gerenciamento Processos de Negócio Testes Funcionais
  • 15.
    Algumas Informações sobreTestes de Performance  Há diversos tipos de defeitos que podem causar problemas de performance. Exemplos: Application Server, Database Server, Web Server, Rede.  Testes de Performance podem ser planejados durante a execução dos Testes Funcionais, mas os scripts devem ser construídos quando a aplicação está estável. Uma falha funcional interrompe a criação de scripts ou a execução dos Testes de Performance.  Testes de Performance devem envolver profissionais de diversas áreas.  Testes de Performance devem executar cenários de carga da forma mais próxima possível do cenário real de produção.  Um bom planejamento é essencial para o sucesso do Teste de Performance. Um Plano de Teste de Performance deve ser elaborado.
  • 16.
  • 17.
    Carga de Pico(Peak Load) A carga sobre o sistema costuma não ser uniforme nem durante o dia nem durante as épocas do ano. Carga de Pico refere-se ao período no qual o sistema está submetido à carga de maior intensidade. Exemplo de distribuição da carga de usuários durante o dia Carga de Pico é diferente de Carga Média
  • 18.
    Throughput Throughput serve paramediar a quantidade de requisições processadas em relação a uma unidade de tempo. Quando o limite do ambiente é atingido, as requisições são enfileiradas.
  • 19.
    Think Time Think Timecorresponde ao intervalo de tempo entre duas requisições do usuário. Durante este período, o servidor não faz processamento algum para o usuário em questão.
  • 20.
    Ramp Up Ramp Upé usado para gradualmente aumentar a carga de usuários acessando a aplicação.
  • 21.
    Steady State O SteadyState corresponde ao intervalo de tempo mais importante para análise dos resultados do Teste de Performance. Trata-se do período no qual a carga é estável e as medições melhor representam o uso da aplicação/ambiente.
  • 22.
    Scripts e Distribuiçãoda Carga Os scripts devem implementar os principais fluxos da aplicação e deve se levar em conta a importância de a distribuição da carga de usuários simular a carga esperada em produção da melhor maneira possível.
  • 23.
    O “Efeito Funil” Nem todas as requisições passam por todas as camadas.  Mais listeners/threads/connections causam maior sobrecarga de gerenciamento de recursos.  O ideal é conseguir parametrizar o ambiente de modo a obter o melhor tempo de resposta e a melhor utilização de hardware sem causar sobrecarga.
  • 24.
    Throughput x Utilizaçãode Recursos x Tempo de Resposta Com o aumento da carga e do throughput, espera-se que os tempos de resposta cresçam exponencialmente quando o ponto de saturação do sistema for atingido.
  • 25.
    Application Performance Management(APM) É um framework conceitual que fornece uma abordagem sistemática voltada à análise de performance de sistemas. 1. Mensurar a experiência do usuário. 2. Coletar métricas em tempo de execução do sistema. 3. Definir transações de negócio. 4. Coletar métricas dos componentes. 5. Analisar, reportar e tomar decisões.
  • 26.
    Application Performance Management(APM) Exemplos de ferramentas de APM:
  • 27.
    Application Performance Index(Apdex) É um padrão aberto da indústria para medir o desempenho de sistemas através do nível de satisfação do usuário. Primeiro precisamos ter definido qual é o Threshold desejado. Threshold = Tempo ideal de resposta para sua aplicação Threshold Base de Mercado (Tempo analisado de 7 dias) API – 500ms Browser – 3 a 7s Transações: Satisfatórias -> Até o Threshold (T) Toleráveis -> Até 4*T Frustradas -> Maior 4*T Exemplo: 1000 requisições e Threshold = 2s Satisfatórias: 800 requisições com tempo de resposta <= 2s Toleráveis: 140 requisições com tempo de resposta entre 2s e 8s Frustradas: 60 requisições com tempo de resposta > 8s APDEX = (800 + (140/2)/1000 = 0,87
  • 28.
  • 29.
    Performance Analysis forJava Websites Autores: Stacy Joines Ruth Willenborg Ken Hygh Editora: Addison-Wesley Alguns Livros sobre Conceitos de Testes de Performance Performance Testing Guidance for Web Applications Editora: Microsoft Press Solving Enterprise Applications Performance Puzzles Autor: Leonid Grinshpan Editora: Wiley-IEEE Press
  • 30.
    Você já ouviufalar em Teste de Performance de Sistemas? (escrito por Raphael Mantilha) https://medium.com/@raphael.mantilha/voc%C3%AA-j%C3%A1-ouviu-falar-em-teste-de-performance-de- sistemas-51c6c46ac14c JMeter não é tudo que você precisa para fazer Testes de Performance (escrito por Raphael Mantilha) https://medium.com/@raphael.mantilha/jmeter-n%C3%A3o-%C3%A9-tudo-que-voc%C3%AA-precisa-para- fazer-testes-de-performance-b5c3ec83805 Pediram para fazer um Teste de Performance, quais perguntas devo fazer na reunião de entendimento? (escrito por Tatiane Almeida) https://medium.com/@almeidas.tatiane/me-pediram-para-fazer-um-teste-de-performance-quais-perguntas- devo-fazer-na-reuni%C3%A3o-de-1ef7a731627d Como documentar um Plano de Teste de Performance (escrito por Tatiane Almeida) https://medium.com/@almeidas.tatiane/como-documentar-um-plano-de-teste-de-performance-3146aaec3d92 Artigos sobre Testes de Performance
  • 31.
    Master Apache JmeterFrom load testing to DevOps Autores: Antonio Gomes Rodrigues Bruno Demion (Milamber) Philippe Mouawad Editora: Leanpub Disponível em http://leanpub.com/master-jmeter-from-load-test-to-devops Livro e Curso sobre Ferramenta de Testes de Performance Acesse em http://www.blazemeter.com/university/
  • 32.
    Raphael Mantilha Engenheiro Especialistaem Qualidade de Software raphael.mantilha@gmail.com https://www.linkedin.com/in/raphaelmantilha