testes de performance com jmeter

67
Testes de Performance com JMeter Como interpretar resultados e otimizar a execução

Upload: edlaine-zamora

Post on 16-Jan-2017

220 views

Category:

Software


6 download

TRANSCRIPT

Page 1: Testes de Performance com JMeter

Testes de Performance com JMeterComo interpretar resultados e otimizar a execução

Page 2: Testes de Performance com JMeter

Edlaine ZamoraDesenvolvedora Java Web

Beatriz CelestinoAnalista de testes

Page 3: Testes de Performance com JMeter

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: Testes de Performance com JMeter

Introdução aos testes de PerformancePor que testar o desempenho?

Page 5: Testes de Performance com JMeter

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: Testes de Performance com JMeter

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: Testes de Performance com JMeter

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: Testes de Performance com JMeter

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: Testes de Performance com JMeter

Processo

Page 10: Testes de Performance com JMeter

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: Testes de Performance com JMeter

JMeter - Processo

Page 12: Testes de Performance com JMeter

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: Testes de Performance com JMeter

Exemplos melhorias detectadas nos testes

Aumentar recursos de

hardware do servidor

(CPU, RAM, discos).

Page 14: Testes de Performance com JMeter

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: Testes de Performance com JMeter

Exemplos melhorias detectadas nos testes

Otimizar algoritmos.

Page 16: Testes de Performance com JMeter

Exemplos melhorias detectadas nos testes

Utilizar cache de dados que

possui um maior desempenho

ou otimizar o atual banco de

dados.

Page 17: Testes de Performance com JMeter

Hands-on• Infraestrutura: JMeter, Firefox e Java.• Qual sistema vamos testar?

Sistema alvo: http://jmeterapp.herokuapp.com/

Page 18: Testes de Performance com JMeter

Hands-on

• Adicionar e configurar Grupo de usuário (Thread Group)

Page 19: Testes de Performance com JMeter

Hands-on

• Adicionar Área de trabalho (WorkBench)

Page 20: Testes de Performance com JMeter

Hands-on• Configurar Área de trabalho

Page 21: Testes de Performance com JMeter

Hands-on• Configuração do Firefox

Page 22: Testes de Performance com JMeter

Hands-on

• Salvar o Plano de teste

Page 23: Testes de Performance com JMeter

Hands-on

- Gravar o Cenário Acessar o sistema

Page 24: Testes de Performance com JMeter

Hands-on- Adicionar “Ouvinte”

Page 25: Testes de Performance com JMeter

Hands-on

- Tempo de execução- Tempo de Carga - Latência

- Número dos usuários ativos- Limpar os testes

Page 26: Testes de Performance com JMeter

Hands-on

• Refatorar os testes• Renomear as requisições

Page 27: Testes de Performance com JMeter

Hands-on

• Adicionar variáveis

- Plano de teste

Page 28: Testes de Performance com JMeter

Hands-on

- Variáveis Definidas Pelo Usuário

Page 29: Testes de Performance com JMeter

Hands-on

• Gravação de Login• Refatorar• Executar

Page 30: Testes de Performance com JMeter

Hands-on

• Erro da execução

• Correlação de dados• EX: TOKEN, VIEWSTATE, JSESSIONID...

Page 31: Testes de Performance com JMeter

Hands-on

• Adicionar o “Debug pós-processador”

- Executar

Page 32: Testes de Performance com JMeter

Hands-on

• Adicionar o Extractor de Expressão Regular• CSRF-TOKEN=(.*)

Page 33: Testes de Performance com JMeter

Hands-on

• Adicionar o “Gerenciador de Cookie HTTP”

Page 34: Testes de Performance com JMeter

Hands-on

- Substituir as variáveis

- Executar

Page 35: Testes de Performance com JMeter

Hands-on

• Continuar a gravação… • Terminar o Cenário 1 com o logout

• Cenário 2: Cadastro de Pessoa

Page 36: Testes de Performance com JMeter

Hands-on• Parametrização com DDT

• Criar um arquivo “.txt”

• Configuração dos dados CSV

Page 37: Testes de Performance com JMeter

Hands-on

Outra opção: Dados randômicos

__Random(1,10000000)

Page 38: Testes de Performance com JMeter

Hands-on

- Relatório de Sumário

Page 39: Testes de Performance com JMeter

Hands-on

• Adicionar asserções• Asserção de Duração

Page 40: Testes de Performance com JMeter

Hands-on

• Adicionar asserções• Asserção de Resposta

Page 41: Testes de Performance com JMeter

Hands-on

• Configuração Asserções de Resposta

Page 42: Testes de Performance com JMeter

Hands-on

• Extractor XPath• Não é recomendável.

• Localização por xpath

html/head/title/text()

Page 43: Testes de Performance com JMeter

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: Testes de Performance com JMeter

Hands-on

Page 45: Testes de Performance com JMeter

Hands-on

• Requisição JDBC

Page 46: Testes de Performance com JMeter

Hands-on

• Configuração Requisição JDBC

Page 47: Testes de Performance com JMeter

Hands-on

• Passar parâmetro

Page 48: Testes de Performance com JMeter

Remote Control

• São divididas entre: Master e Slave;

• Para configuração da Master:• Configuração do jmeter.properties

Page 49: Testes de Performance com JMeter

Remote Control

• Para configuração SLAVE:• Configuração do jmeter.properties

• Executar o jmeter-server.bat com a porta

Page 51: Testes de Performance com JMeter

Ferramentas

• JVisualVM

• Monitor de desempenho

• NewRelic*

• BlazeMeter*

• BlazeMeter Sense*

Page 52: Testes de Performance com JMeter

14 dicas e sugestões de boas práticas

1. Use o mínimo de “ouvintes” possíveis na execução.

Page 53: Testes de Performance com JMeter

14 dicas e sugestões de boas práticas

2. Use “árvore de resultados” apenas com o log de erros ativo.

Page 54: Testes de Performance com JMeter

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: Testes de Performance com JMeter

14 dicas e sugestões de boas práticas

4. Mantenha seu banco de dados controlado.

Page 56: Testes de Performance com JMeter

14 dicas e sugestões de boas práticas

5. Analise a capacidade do computador.

Page 57: Testes de Performance com JMeter

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: Testes de Performance com JMeter

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: Testes de Performance com JMeter

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: Testes de Performance com JMeter

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: Testes de Performance com JMeter

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: Testes de Performance com JMeter

14 dicas e sugestões de boas práticas

11. Salve os dados em CSV em vez de XML.

Page 63: Testes de Performance com JMeter

14 dicas e sugestões de boas práticas

12. Não execute os testes na rede local.

Page 64: Testes de Performance com JMeter

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: Testes de Performance com JMeter

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 67: Testes de Performance com JMeter

Obrigada!

[email protected]@edlainezamora

[email protected]