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

Usando JMeter para testar sua aplicação JSF

Feb 16, 2017

Download

Software

JADSON SANTOS
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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