SlideShare une entreprise Scribd logo
1  sur  41
Introduçãoaos Testes de Desempenho César Fernandes Teixeira cesar.fernandes@base2.com.br
César Fernandes Teixeira Analista de Desempenho – Base2 Tecnologia Mestre em Ciência da Computação (UFMG) Bacharel em Ciência da Computação (UFMG) Certificado CTFL pelo ISTQB Participou, durante a graduação e mestrado, de projetos de pesquisa de análise e modelagem de desempenho, planejamento de capacidade e projeto experimental em ciência da computação 2
PARTE 1: Introdução e Motivação 3
Motivação 4 ? ! Servidor e-commerce
Motivação 5 ? ? ? Servidor e-commerce
Motivação Sistema de Seleção Unificada (Sisu) - 2011 6
Motivação Amazon - 2008 7 Fonte: http://idgnow.uol.com.br
Introdução Os testes de desempenho permitem: ,[object Object]
Saber a carga máxima suportada pelo sistema
Planejar melhorias no ambiente para atender a demandas atuais e futuras
Não perder clientes por falhas no desempenho8
Introdução 9 ,[object Object],[object Object]
Requisição: requisição http realizada.,[object Object]
Sistema: todo o conjunto de servidores, rede entre servidores, softwares de terceiros e a aplicação.
Utilização de um recurso: percentual, em uso, do total de recursos disponíveis.,[object Object]
Definição não é universal.
Na nomeclatura do Jmeter , é o elapsed time,[object Object]
Vazão: taxa com que um sistema responde às requisições recebidas.
Gargalo: tudo o que impede que o sistema apresente maior vazão.
Se a vazão for inferior à taxa com que as requisições são enviadas ao sistema.,[object Object]
Visão Geral 15 ? ! ? ! ! ? Gerador de Carga Sistema
Processo de Testes: Etapa 0 16 A etapa inicial é entender os objetivos dos testes É interessante saber como o sistema se comporta com a carga atual? É interessante saber qual a carga máxima que o sistema suporta? É interessante conhecer e apontar os gargalos? Entender qual o sistema a ser testado e a arquitetura do ambiente. Qual o limite de tempo de resposta aceitável? (6 segundos).
Processo de Testes: Etapa 0 17 Onde instalar os geradores de carga? Na mesma rede do sistema Na mesma rede onde os clientes estarão Meio de acesso
Processo de Testes: Etapa 0 18 Testar a aplicação do cliente? Testar o desempenho em browsers diferentes? Testar o desempenho na aplicação cliente (frontend)? Testar somente os servidores?
Processo de Teste 19
Configuração do Ambiente Configurar o sistema que será testado Configurar as máquinas que irão gerar a carga Configurar o monitoramento do ambiente O que deve ser monitorado? 20
Monitoramento do sistema 21 Métricas Sistema Operacional (Todas as máquinas) Utilização CPU, memória, Swap, disco, rede, etc. /proc, perfmon, vmstat, etc.
Monitoramento do sistema 22 Ex: Utilização CPU
Monitoramento do sistema 23 Métricas Banco de Dados Tempo ocupado, tempo execução médio por query, locks, leituras físicas e lógicas, etc. Relatório AWR, etc.
Monitoramento do sistema 24 Ex: Relatório AWR (Oracle)
Monitoramento do sistema 25 Profiling(Servidor de aplicação) Tempo de execução por método, tempo de execução em CPU por método, memória consumida por classe, etc. VisualVM, RedGate Ants, etc.
Monitoramento do sistema 26 Ex: VisualVM (Java)
Monitoramento do sistema Há ferramentas que facilitam o monitoramento do sistema: NewRelic Integra profiling e monitoramento de métricas do sistema operacional. Cacti Monitoramento de métricas do SO. Up.time Monitoramento de métricas do SO. 27
Modelagem 28 Entender o comportamento dos usuários que se deseja simular (Caracterização) Criar os scripts para simular as transações de interesse
Modelagem: Caracterização 29 Quantos usuários simultâneos o sistema terá/tem na média? E no momento de pico? 100 usuários. Pico de 300. Qual a demanda estimada para o futuro? Espera-se um aumento de 50% nos acessos em 1 ano Quais as transações no sistema que são mais relevantes? Busca por produto e checkout. Qual a taxa de transações de cada categoria? 200 buscas por minuto, 20 checkouts por minuto.
Modelagem: Caracterização 30 Os dados são obtidos geralmente de duas maneiras Estudo dos logs dos servidores Relatórios gerenciais contendo essas informações
Modelagem: Caracterização 31 Exemplo log Apache 127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /index.html HTTP/1.0" 200 2326 127.0.0.1 - frank [10/Oct/2000:13:56:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326 192.168.0.1 - paulo [10/Oct/2000:14:06:36 -0700] "GET /checkout.php HTTP/1.0" 200 2326
Modelagem: Scripts 32 Criar scripts para as operações levantadas na caracterização; Configurar a carga planejada para cada script; Geralmente os geradores de carga possuem a funcionalidade de criar scripts. Ex: Jmeter, MicrofocusSilkPerformer, etc.
Modelagem: Scripts 33 Exemplo: JMeter
Execução dos testes 34 ,[object Object]
Dispara a carga definida nos scripts criados

Contenu connexe

Tendances

Palestra Fundamentos de Testes - Tche linux POA
Palestra Fundamentos de Testes  - Tche linux POAPalestra Fundamentos de Testes  - Tche linux POA
Palestra Fundamentos de Testes - Tche linux POA
Aline Zanin
 

Tendances (20)

Palestra GUTS - Viabilidade da Automacao Teste Software e Demo QTP
Palestra GUTS - Viabilidade da Automacao Teste Software e Demo QTPPalestra GUTS - Viabilidade da Automacao Teste Software e Demo QTP
Palestra GUTS - Viabilidade da Automacao Teste Software e Demo QTP
 
Fundamentos de Teste de Software - Dev in PF. por Aline Zanin
Fundamentos de Teste de Software - Dev in PF. por Aline ZaninFundamentos de Teste de Software - Dev in PF. por Aline Zanin
Fundamentos de Teste de Software - Dev in PF. por Aline Zanin
 
Paletra sobre TDD, ocorrida no #DevDojo
Paletra sobre TDD, ocorrida no #DevDojoPaletra sobre TDD, ocorrida no #DevDojo
Paletra sobre TDD, ocorrida no #DevDojo
 
Automação de Teste Funcionais - Selenium
Automação de Teste Funcionais - SeleniumAutomação de Teste Funcionais - Selenium
Automação de Teste Funcionais - Selenium
 
Testes de Software
Testes de SoftwareTestes de Software
Testes de Software
 
Testes Unitários usando TestNG
Testes Unitários usando TestNGTestes Unitários usando TestNG
Testes Unitários usando TestNG
 
Qualidade
QualidadeQualidade
Qualidade
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
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
 
Testes Funcionais
Testes FuncionaisTestes Funcionais
Testes Funcionais
 
Eng de testes aula2
Eng de testes   aula2Eng de testes   aula2
Eng de testes aula2
 
Teste agora! Não deixe para depois!
Teste agora! Não deixe para depois!Teste agora! Não deixe para depois!
Teste agora! Não deixe para depois!
 
Eng de testes
Eng de testesEng de testes
Eng de testes
 
Talk sobre testes automatizados. Parte 1/2
Talk sobre testes automatizados. Parte 1/2Talk sobre testes automatizados. Parte 1/2
Talk sobre testes automatizados. Parte 1/2
 
Engenharia de software testes
Engenharia de software  testesEngenharia de software  testes
Engenharia de software testes
 
Palestra Fundamentos de Testes - Tche linux POA
Palestra Fundamentos de Testes  - Tche linux POAPalestra Fundamentos de Testes  - Tche linux POA
Palestra Fundamentos de Testes - Tche linux POA
 
JMeter
JMeterJMeter
JMeter
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
ALM - Testes Exploratórios no Microsoft Test Manager
ALM - Testes Exploratórios no Microsoft Test ManagerALM - Testes Exploratórios no Microsoft Test Manager
ALM - Testes Exploratórios no Microsoft Test Manager
 
ALM - Testes Manuais no Microsoft Test Manager
ALM - Testes Manuais no Microsoft Test ManagerALM - Testes Manuais no Microsoft Test Manager
ALM - Testes Manuais no Microsoft Test Manager
 

Similaire à Introdução aos Testes de Desempenho

Teste de performance no contexto de uma aplicação de nf e
Teste de performance no contexto de uma aplicação de nf eTeste de performance no contexto de uma aplicação de nf e
Teste de performance no contexto de uma aplicação de nf e
Alan Correa Morais
 
A Automação dos Processos na Gestão de Performance das Aplicações por Gilbert...
A Automação dos Processos na Gestão de Performance das Aplicações por Gilbert...A Automação dos Processos na Gestão de Performance das Aplicações por Gilbert...
A Automação dos Processos na Gestão de Performance das Aplicações por Gilbert...
Joao Galdino Mello de Souza
 

Similaire à Introdução aos Testes de Desempenho (20)

Dba Ciclo Palestra P5 V1a
Dba Ciclo Palestra P5 V1aDba Ciclo Palestra P5 V1a
Dba Ciclo Palestra P5 V1a
 
Medindo O Desempenho De Processadores
Medindo O Desempenho De ProcessadoresMedindo O Desempenho De Processadores
Medindo O Desempenho De Processadores
 
Teste de performance no contexto de uma aplicação de nf e
Teste de performance no contexto de uma aplicação de nf eTeste de performance no contexto de uma aplicação de nf e
Teste de performance no contexto de uma aplicação de nf e
 
O que é Teste de Software?
O que é Teste de Software?O que é Teste de Software?
O que é Teste de Software?
 
Planejamento projeto masiero
Planejamento projeto masieroPlanejamento projeto masiero
Planejamento projeto masiero
 
Aula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdfAula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdf
 
A Automação dos Processos na Gestão de Performance das Aplicações por Gilbert...
A Automação dos Processos na Gestão de Performance das Aplicações por Gilbert...A Automação dos Processos na Gestão de Performance das Aplicações por Gilbert...
A Automação dos Processos na Gestão de Performance das Aplicações por Gilbert...
 
Noções em teste de software e introdução a automação
Noções em teste de software e introdução a automaçãoNoções em teste de software e introdução a automação
Noções em teste de software e introdução a automação
 
Teste de Software
Teste de SoftwareTeste de Software
Teste de Software
 
Cmg falando de testes de desempenho
Cmg falando de testes de desempenhoCmg falando de testes de desempenho
Cmg falando de testes de desempenho
 
Monitoracao Inteligente na Globo.com
Monitoracao Inteligente na Globo.comMonitoracao Inteligente na Globo.com
Monitoracao Inteligente na Globo.com
 
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
 
Análise de Sistemas - Requisitos (Revisão e Requisitos Suplementares)
Análise de Sistemas - Requisitos (Revisão e Requisitos Suplementares)Análise de Sistemas - Requisitos (Revisão e Requisitos Suplementares)
Análise de Sistemas - Requisitos (Revisão e Requisitos Suplementares)
 
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
 
Webshow - Automação Laboratorial I
Webshow - Automação Laboratorial IWebshow - Automação Laboratorial I
Webshow - Automação Laboratorial I
 
Computacao
ComputacaoComputacao
Computacao
 
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
 
[GUTS-RS] Testes de Performance
 [GUTS-RS] Testes de Performance [GUTS-RS] Testes de Performance
[GUTS-RS] Testes de Performance
 
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...
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 

Dernier

Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
Natalia Granato
 

Dernier (6)

Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 

Introdução aos Testes de Desempenho

  • 1. Introduçãoaos Testes de Desempenho César Fernandes Teixeira cesar.fernandes@base2.com.br
  • 2. César Fernandes Teixeira Analista de Desempenho – Base2 Tecnologia Mestre em Ciência da Computação (UFMG) Bacharel em Ciência da Computação (UFMG) Certificado CTFL pelo ISTQB Participou, durante a graduação e mestrado, de projetos de pesquisa de análise e modelagem de desempenho, planejamento de capacidade e projeto experimental em ciência da computação 2
  • 3. PARTE 1: Introdução e Motivação 3
  • 4. Motivação 4 ? ! Servidor e-commerce
  • 5. Motivação 5 ? ? ? Servidor e-commerce
  • 6. Motivação Sistema de Seleção Unificada (Sisu) - 2011 6
  • 7. Motivação Amazon - 2008 7 Fonte: http://idgnow.uol.com.br
  • 8.
  • 9. Saber a carga máxima suportada pelo sistema
  • 10. Planejar melhorias no ambiente para atender a demandas atuais e futuras
  • 11. Não perder clientes por falhas no desempenho8
  • 12.
  • 13.
  • 14. Sistema: todo o conjunto de servidores, rede entre servidores, softwares de terceiros e a aplicação.
  • 15.
  • 16. Definição não é universal.
  • 17.
  • 18. Vazão: taxa com que um sistema responde às requisições recebidas.
  • 19. Gargalo: tudo o que impede que o sistema apresente maior vazão.
  • 20.
  • 21. Visão Geral 15 ? ! ? ! ! ? Gerador de Carga Sistema
  • 22. Processo de Testes: Etapa 0 16 A etapa inicial é entender os objetivos dos testes É interessante saber como o sistema se comporta com a carga atual? É interessante saber qual a carga máxima que o sistema suporta? É interessante conhecer e apontar os gargalos? Entender qual o sistema a ser testado e a arquitetura do ambiente. Qual o limite de tempo de resposta aceitável? (6 segundos).
  • 23. Processo de Testes: Etapa 0 17 Onde instalar os geradores de carga? Na mesma rede do sistema Na mesma rede onde os clientes estarão Meio de acesso
  • 24. Processo de Testes: Etapa 0 18 Testar a aplicação do cliente? Testar o desempenho em browsers diferentes? Testar o desempenho na aplicação cliente (frontend)? Testar somente os servidores?
  • 26. Configuração do Ambiente Configurar o sistema que será testado Configurar as máquinas que irão gerar a carga Configurar o monitoramento do ambiente O que deve ser monitorado? 20
  • 27. Monitoramento do sistema 21 Métricas Sistema Operacional (Todas as máquinas) Utilização CPU, memória, Swap, disco, rede, etc. /proc, perfmon, vmstat, etc.
  • 28. Monitoramento do sistema 22 Ex: Utilização CPU
  • 29. Monitoramento do sistema 23 Métricas Banco de Dados Tempo ocupado, tempo execução médio por query, locks, leituras físicas e lógicas, etc. Relatório AWR, etc.
  • 30. Monitoramento do sistema 24 Ex: Relatório AWR (Oracle)
  • 31. Monitoramento do sistema 25 Profiling(Servidor de aplicação) Tempo de execução por método, tempo de execução em CPU por método, memória consumida por classe, etc. VisualVM, RedGate Ants, etc.
  • 32. Monitoramento do sistema 26 Ex: VisualVM (Java)
  • 33. Monitoramento do sistema Há ferramentas que facilitam o monitoramento do sistema: NewRelic Integra profiling e monitoramento de métricas do sistema operacional. Cacti Monitoramento de métricas do SO. Up.time Monitoramento de métricas do SO. 27
  • 34. Modelagem 28 Entender o comportamento dos usuários que se deseja simular (Caracterização) Criar os scripts para simular as transações de interesse
  • 35. Modelagem: Caracterização 29 Quantos usuários simultâneos o sistema terá/tem na média? E no momento de pico? 100 usuários. Pico de 300. Qual a demanda estimada para o futuro? Espera-se um aumento de 50% nos acessos em 1 ano Quais as transações no sistema que são mais relevantes? Busca por produto e checkout. Qual a taxa de transações de cada categoria? 200 buscas por minuto, 20 checkouts por minuto.
  • 36. Modelagem: Caracterização 30 Os dados são obtidos geralmente de duas maneiras Estudo dos logs dos servidores Relatórios gerenciais contendo essas informações
  • 37. Modelagem: Caracterização 31 Exemplo log Apache 127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /index.html HTTP/1.0" 200 2326 127.0.0.1 - frank [10/Oct/2000:13:56:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326 192.168.0.1 - paulo [10/Oct/2000:14:06:36 -0700] "GET /checkout.php HTTP/1.0" 200 2326
  • 38. Modelagem: Scripts 32 Criar scripts para as operações levantadas na caracterização; Configurar a carga planejada para cada script; Geralmente os geradores de carga possuem a funcionalidade de criar scripts. Ex: Jmeter, MicrofocusSilkPerformer, etc.
  • 39. Modelagem: Scripts 33 Exemplo: JMeter
  • 40.
  • 41. Dispara a carga definida nos scripts criados
  • 42. Captura as métricas do cliente (i.e. tempo de resposta, vazão, etc)
  • 43. Monitoramento do sistema encontra-se ativo
  • 44.
  • 45. Relatório Final 36 A partir da massa de dados gerados pela execução, busca responder: Sistema suporta a carga esperada? Qual a carga máxima que o sistema suportou? Ocorreram falhas ou queda no sistema com o aumento na carga? Quais os gargalos e o que pode ser feito para melhorar a vazão?
  • 46. PARTE 3: Cenário atual, erros comuns e considerações finais 37
  • 47.
  • 48.
  • 49. Não monitorar todo o ambiente.
  • 50. Desconfie do “Isso não é um problema”.
  • 51. Não conhecer o ambiente.
  • 52.
  • 53. Não conhecer os objetivos dos testes.
  • 54. Testar depois do sistema estar em produção.
  • 55. Não testar no ambiente de produção.
  • 56.
  • 57. A execução e planejamento podem ser complicados e devem ser feitos de maneira cuidadosa.