Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Usando JMeter para 
testar sua aplicação JSF 
S 
Jadson Santos
JMeter + JSF 
S Testes de desempenho e estresse 
S Testam um sistema quanto aos seus requisitos de 
desempenho 
S Latên...
JMeter + JSF 
S JMeter 
S Testes de desempenho em aplicações cliente/servidor 
S Escrita em Java 
S Suporte a diversos...
JMeter + JSF 
S JMeter (instalação) 
S Baixar o arquivo em: 
S http://jmeter.apache.org/download_jmeter.cgi
JMeter + JSF 
S JMeter (instalação) 
S Descompactar e executar o arquivo 
S bin/jmeter.bat (windows) ou bin/jmeter.sh (...
JMeter + JSF 
S JMeter componentes básicos: 
S Plano de Teste: Configurações do seu teste 
S Área de Trabalho: Área de ...
JMeter + JSF 
S Plano de Teste 
S Todo teste com JMeter possui um plano de testes
JMeter + JSF 
S Grupo de Usuários 
S Para criar um teste deve-se obrigatoriamente adicionar um 
grupo de usuários ao pla...
JMeter + JSF 
S Grupo de Usuários 
S Na figura abaixo estamos configurando para 1000 usuários 
executarem o teste dento ...
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 r...
JMeter + JSF 
S Padrões de Requisição HTTP 
S Adicionar -> Elementos de Configuração -> Padrões de 
Requisições HTTP 
S...
JMeter + JSF 
S Integração com JSF 
S Para simular o parâmetro ViewState passado em toda 
requisição do JSF, adicione um...
JMeter + JSF 
S Fluxo do seu teste 
S Para um teste simples, adicione um controlador lógico que 
executa uma única vez. ...
JMeter + JSF 
S Requisições HTTP 
S A navegação pelas páginas JSF da aplicação é realizada 
por meio de requisições HTTP...
JMeter + JSF 
S Requisições HTTP 
S Adicione as seguintes informações à requisição HTTP: 
S Nome do Servidor ou IP: loc...
JMeter + JSF 
S Requisições HTTP 
S Ao mandar executar o teste, conforme foi configurado no 
grupo de usuários, 1000 req...
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...
JMeter + JSF 
S Testando o Login 
S Digite as mesmas informações utilizadas na 1ª requisição à 
tela de login (é possíve...
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 r...
JMeter + JSF 
S Testando o Login 
S Após isso, deve-se informar os parâmetros que seriam os 
dados digitados pelo usuári...
JMeter + JSF 
S Testando o Login 
S Uma maneira de saber quais são os parâmetros a serem 
informados é executar a ação p...
JMeter + JSF 
S Testando o Login (visualizando os parâmetro da requisição 
pelo FireBug)
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...
JMeter + JSF 
S Visualizando os resultados 
S Para ajudar a analisar os resultados do teste, existem vários 
“ouvintes” ...
JMeter + JSF 
S Visualizando os resultados por meio de um Gráfico de 
Resultados
JMeter + JSF 
S As requisições as demais páginas do sistema podem ser 
simuladas de maneira similar, adicionado outras 
r...
JMeter + JSF 
S Um exemplo de Teste Completo no JMeter
JMeter + JSF 
S Conclusões 
S O JMeter é um ferramenta poderosa para realizar teste de 
performance do seu sistema 
S E...
Usando JMeter para 
testar sua aplicação JSF 
S 
Jadson Santos
Upcoming SlideShare
Loading in …5
×

Usando JMeter para testar sua aplicação JSF

Testes de performance são uns dos testes fundamentais que toda equipe de desenvolvimento com o mínimo de profissionalismo deveria executar.
Essa apresentação mostra um exemplo básico de com usar JMeter para realizar testes de performance em aplicações web com JSF.

Usando JMeter para testar sua aplicação JSF

  1. 1. Usando JMeter para testar sua aplicação JSF S Jadson Santos
  2. 2. 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
  3. 3. 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
  4. 4. JMeter + JSF S JMeter (instalação) S Baixar o arquivo em: S http://jmeter.apache.org/download_jmeter.cgi
  5. 5. JMeter + JSF S JMeter (instalação) S Descompactar e executar o arquivo S bin/jmeter.bat (windows) ou bin/jmeter.sh (macOS/Linux)
  6. 6. 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
  7. 7. JMeter + JSF S Plano de Teste S Todo teste com JMeter possui um plano de testes
  8. 8. 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
  9. 9. 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
  10. 10. 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.
  11. 11. 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
  12. 12. 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 0 Combinações
  13. 13. 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:
  14. 14. 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
  15. 15. 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
  16. 16. 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
  17. 17. 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
  18. 18. 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
  19. 19. 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. Nome Valor Codificar myForm%3A_SUBMIT 1 false myForm%3A_link_hidden_ false javax.faces.ViewState ${jsfViewState} 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
  20. 20. 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 Nome Valor Codificar myForm myForm false myForm:inputLogin joao true myForm:inputSenha 123 true myForm:buttonLogar myForm:buttonLogar true S Codificar = true pode usar o “:” no id do campo S Codificar = false deve-se digitar “%3A” em vez do “:”
  21. 21. 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.
  22. 22. JMeter + JSF S Testando o Login (visualizando os parâmetro da requisição pelo FireBug)
  23. 23. 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:
  24. 24. 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
  25. 25. JMeter + JSF S Visualizando os resultados por meio de um Gráfico de Resultados
  26. 26. JMeter + JSF S As requisições as demais páginas do sistema podem ser simuladas de maneira similar, adicionado outras requisições HTTP
  27. 27. JMeter + JSF S Um exemplo de Teste Completo no JMeter
  28. 28. 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
  29. 29. Usando JMeter para testar sua aplicação JSF S Jadson Santos

×