usando jmeter para testar sua aplicação jsf

29
Usando JMeter para testar sua aplicação JSF Jadson Santos

Upload: jadson-santos

Post on 16-Feb-2017

2.183 views

Category:

Software


6 download

TRANSCRIPT

Page 1: Usando JMeter para testar sua aplicação JSF

S

Usando JMeter para testar sua aplicação JSF

Jadson Santos

Page 2: Usando JMeter para testar sua aplicação JSF

JMeter + JSF

S  Testes de desempenho e estresse S  Testam um sistema quanto aos seus requisitos de

desempenho S  Latência: tempo entre uma requisição e a resposta da operação

S  Vazão (throughput): o número de operações que o sistema é capaz de completar em um dado período de tempo

S  Escalabilidade: A quantidade de usuários simultâneos que o sistema pode lidar

S  Recursos: Processamento e Memória

Page 3: Usando JMeter para testar sua aplicação JSF

JMeter + JSF

S  JMeter S  Testes de desempenho em aplicações cliente/servidor

S  Escrita em Java

S  Suporte a diversos protocolos: HTTP, JDBC, FPT, SOAP

S  Pode ser usada para testes funcionais S  Possui várias asserções que podem ser usadas para verificar

resultados das requisições

Page 4: Usando JMeter para testar sua aplicação JSF

JMeter + JSF

S  JMeter (instalação)

S  Baixar o arquivo em: S  http://jmeter.apache.org/download_jmeter.cgi

Page 5: Usando JMeter para testar sua aplicação JSF

JMeter + JSF

S  JMeter (instalação)

S  Descompactar e executar o arquivo S  bin/jmeter.bat (windows) ou bin/jmeter.sh (macOS/Linux)

Page 6: Usando JMeter para testar sua aplicação JSF

JMeter + JSF

S  JMeter componentes básicos: S  Plano de Teste: Configurações do seu teste

S  Área de Trabalho: Área de armazenamento temporária

S  Grupo de Usuários: Grupo de usuários virtuais que serão os usuários que executarão os testes (cada usuário é uma thread criada pelo JMeter)

S  O JMeter funciona de forma hierárquica, o nó raiz é o plano de testes, abaixo dele vem o grupo de usuários, abaixo desse grupo os demais elementos.

S  O JMeter executa o plano de testes de acordo com a ordem desses elementos na árvore

Page 7: Usando JMeter para testar sua aplicação JSF

JMeter + JSF

S  Plano de Teste S  Todo teste com JMeter possui um plano de testes

Page 8: Usando JMeter para testar sua aplicação JSF

JMeter + JSF

S  Grupo de Usuários S  Para criar um teste deve-se obrigatoriamente adicionar um

grupo de usuários ao plano de testes.

S  Adicionar -> (Threads) Users -> Grupos de Usuários

Page 9: Usando JMeter para testar sua aplicação JSF

JMeter + JSF S  Grupo de Usuários

S  Na figura abaixo estamos configurando para 1000 usuários executarem o teste dento de 60 segundos com 1 repetição e os testes devem continuar caso algum dos usuários falhe

S  Todos os demais elementos do teste devem ficar dentro do Grupo de Usuários

Page 10: Usando JMeter para testar sua aplicação JSF

JMeter + JSF S  Padrões de Requisição HTTP e Gerenciador de Cookie

HTTP S  Adicione ao grupo de usuários um padrão de requisições

HTTP e um gerenciador de Cookie que limpe os cookies gerados, de forma que eles não atrapalhem o resultado do seu teste.

Page 11: Usando JMeter para testar sua aplicação JSF

JMeter + JSF

S  Padrões de Requisição HTTP S  Adicionar -> Elementos de Configuração -> Padrões de

Requisições HTTP

S  Gerenciador de Cookie HTTP S  Adicionar -> Elementos de Configuração -> Gerenciador de

Cookie HTTP

Page 12: Usando JMeter para testar sua aplicação JSF

JMeter + JSF

S  Integração com JSF S  Para simular o parâmetro ViewState passado em toda

requisição do JSF, adicione um extrator de expressão regular com os seguintes dados:

S  Adicionar –> Pós Processadores -> Extrator de Expressão Regular

Nome de Referência

jsfViewState

Expressão Regular <input type="hidden" name="javax\.faces\.ViewState" id="javax\.faces\.ViewState" value="([^"]+)".*/>

Modelo $1$

Número de Combinações

0

Page 13: Usando JMeter para testar sua aplicação JSF

JMeter + JSF

S  Fluxo do seu teste S  Para um teste simples, adicione um controlador lógico que

executa uma única vez.

S  Adicionar -> Controlador Lógico -> Controlador de Uma Única Vez

S  Neste ponto a estrutura do seu teste deve está confirme a figura abaixo:

Page 14: Usando JMeter para testar sua aplicação JSF

JMeter + JSF

S  Requisições HTTP

S  A navegação pelas páginas JSF da aplicação é realizada por meio de requisições HTTP

S  Crie dentro do controlador uma requisição HTTP para chamar a página de login da sua aplicação S  Adicionar -> Testador -> Requisição HTTP

Page 15: Usando JMeter para testar sua aplicação JSF

JMeter + JSF S  Requisições HTTP

S  Adicione as seguintes informações à requisição HTTP: S  Nome do Servidor ou IP: localhost

S  Porta: 8080

S  Implementação: Java

S  Protocolo: Http

S  Método: GET

S  Caminho: adicione o caminho para a página JSF de login, a partir do contexto do sistema

Page 16: Usando JMeter para testar sua aplicação JSF

JMeter + JSF

S  Requisições HTTP

S  Ao mandar executar o teste, conforme foi configurado no grupo de usuários, 1000 requisições em 1 minuto serão feitas a essa página

Page 17: Usando JMeter para testar sua aplicação JSF

JMeter + JSF

S  Testando o Login S  A próxima ação que o usuário realiza após acessar a página

de login é digitar o usuário e a senha e realizar o login.

S  Para simular esse comportamento, crie outra requisição HTTP

Page 18: Usando JMeter para testar sua aplicação JSF

JMeter + JSF

S  Testando o Login S  Digite as mesmas informações utilizadas na 1ª requisição à

tela de login (é possível duplicar as informações de outro elemento no JMeter).

S  A única diferença é que para simular uma ação JSF é preciso mudar o método da requisição HTTP de GET para POST.

S  Em seguida, deve-se digitar os parâmetros da requisição que serão os dado passados ao servidor para executar a ação de logar no sistema

Page 19: Usando JMeter para testar sua aplicação JSF

JMeter + JSF

S  Testando o Login S  Os três parâmetros abaixo são os valores dos parâmetros

passados pelo JSF em toda requisição realizada

S  Então eles são obrigatórios em toda requisição HTTP criada no JMeter para realizar o teste de performance do seu sistema.

S  jsfViewState é a variável criada no extrator de expressão regular, como esse extrator está definido dentro do mesmo grupo de usuários, ela é enxergada pela sua requisição HTTP

Nome Valor Codificar

myForm%3A_SUBMIT 1 false

myForm%3A_link_hidden_ false

javax.faces.ViewState ${jsfViewState}

Page 20: Usando JMeter para testar sua aplicação JSF

JMeter + JSF

S  Testando o Login S  Após isso, deve-se informar os parâmetros que seriam os

dados digitados pelo usuário. Sendo que o formulário a ser submetido deve estar entre os parâmetros

S  Codificar = true pode usar o “:” no id do campo

S  Codificar = false deve-se digitar “%3A” em vez do “:”

Nome Valor Codificar

myForm myForm false

myForm:inputLogin joao true

myForm:inputSenha 123 true

myForm:buttonLogar myForm:buttonLogar true

Page 21: Usando JMeter para testar sua aplicação JSF

JMeter + JSF

S  Testando o Login S  Uma maneira de saber quais são os parâmetros a serem

informados é executar a ação pelo navegador utilizando o FireBug ( https://getfirebug.com/ )

S  Pelo FireBug, na aba Redes -> Clicar na página principal requisitada -> Postar

S  Aparecem os parâmetros que o JSF passa ao executar a ação. São os mesmo parâmetros que devem ser informados no JMeter.

Page 22: Usando JMeter para testar sua aplicação JSF

JMeter + JSF

S  Testando o Login (visualizando os parâmetro da requisição pelo FireBug)

Page 23: Usando JMeter para testar sua aplicação JSF

JMeter + JSF S  Testando o Login

S  Uma boa prática de programação é colocar um “id” em todos os campos das páginas JSF.

S  Essa prática também irá ajudar a identificar os parâmetros necessário na requisição. Veja abaixo uma página JSF sem ids como fica difícil de interpretar:

Page 24: Usando JMeter para testar sua aplicação JSF

JMeter + JSF S  Visualizando os resultados

S  Para ajudar a analisar os resultados do teste, existem vários “ouvintes” que podem ser adicionados ao grupo de usuários.

S  Adicionar -> Ouvintes -> Gráfico de Resultados

S  Nesse gráfico é possível ver entre outra medidas: vazão, tempo médio das requisições, etc

Page 25: Usando JMeter para testar sua aplicação JSF

JMeter + JSF S  Visualizando os resultados por meio de um Gráfico de

Resultados

Page 26: Usando JMeter para testar sua aplicação JSF

JMeter + JSF

S  As requisições as demais páginas do sistema podem ser simuladas de maneira similar, adicionado outras requisições HTTP

Page 27: Usando JMeter para testar sua aplicação JSF

JMeter + JSF S  Um exemplo de Teste Completo no JMeter

Page 28: Usando JMeter para testar sua aplicação JSF

JMeter + JSF S  Conclusões

S  O JMeter é um ferramenta poderosa para realizar teste de performance do seu sistema

S  Existem centenas de outras opções que podem ser configuradas para testes mais complexos

S  É muito importante que pelo menos as operações mais utilizadas do seu sistema possuam testes de performance

Page 29: Usando JMeter para testar sua aplicação JSF

S

Usando JMeter para testar sua aplicação JSF

Jadson Santos