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 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.
8. Processo de Testes de Performance
A ferramenta de Teste de
Performance é importante
aqui !
13. Áreas que se relacionam com Testes de Performance
Arquitetura de Sistemas Redes e Protocolos
Linguagens de Programação Sistemas Operacionais Banco de Dados
14. Áreas que se relacionam com Testes de Performance
Segurança Estátística / Matemática
Planejamento e Gerenciamento Processos de Negócio Testes Funcionais
15. 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.
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 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.
19. 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.
20. Ramp Up
Ramp Up é usado para gradualmente aumentar a carga de usuários acessando a aplicação.
21. 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.
22. 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.
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çã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.
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.
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
29. 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
30. 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
31. 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/