manual de utilização do jmeter.doc
TRANSCRIPT
Prefeitura de Belo HorizontePBH
Empresa de Informática e Informação de Belo HorizonteS/A
PRODABELSuperintendência de Arquitetura de Sistemas - SAS
Manual de Utilização do Jmeter
Autor: Nathan Robert Mariano
Regina Márcia Rodrigues
Belo Horizonte, Janeiro 2015.
SUMÁRIO
1. INTRODUÇÃO.......................................................................................................................3
2. Instalação.............................................................................................................................3
3. Utilização do JMeter.............................................................................................................5
3.1 Criando um Plano de Testes.........................................................................................6
3.1.1 Adicionando usuários...........................................................................................8
SUMÁRIO DE FIGURAS
Figura 1 – Página para Download do JMeter................................................................................4
Figura 2 – Estrutura de diretórios do JMeter...............................................................................4
Figura 3 – Tela inicial do JMeter...................................................................................................5
Figura 4 – Principais componentes do Plano de Teste.................................................................7
1. INTRODUÇÃO
Nos dias de hoje o desenvolvimento de aplicações para internet tem tido um
papel fundamental para a disseminação de conhecimento e informações diversas. O que
tem gerado uma grande mudança na vida das pessoas e das empresas. A possibilidade
de múltiplos usuários utilizando a aplicação, interfaces com outras aplicações e acessos
remoto dos mais variados tipos tem dificultado a manutenção da infraestrutura.
Para verificar se a arquitetura desenvolvida é capaz de atender a responder a
quantidade de usuários previstos, o tempo de resposta de uma determinada
funcionalidade, entre outras se faz necessário à utilização de ferramentas que permitam
a simulação do uso e a devida documentação dos resultados obtidos.
Atualmente não contamos com muitos padrões. O que temos são tecnologias
isoladas.
Diante deste cenário uma das ferramentas que se destacam é o Apache JMeter
como ferramenta open source para teste de desempenho, principalmente por sua
facilidade de uso e versatilidade.
O Apache JMeter é uma ferramenta desktop para testes de desempenho,
desenvolvida utilizando a linguagem Java.
O proposito deste manual é ser um recurso para os usuários compreenderem a
instalação e utilização da ferramenta.
2. INSTALAÇÃO
Antes de iniciar a instalação do JMeter é necessário saber os pré-requisitos para
seu funcionamento.
JVM 6 (Java Virtual Machine) ou superior
Na data de publicação desse manual, a versão mais recente é a 2.12, que pode
ser baixada gratuitamente no seguinte link
http://jmeter.apache.org/download_jmeter.cgi, como mostra a Figura 1.
Figura 1 – Página para Download do JMeter
O JMeter vem empacotado no formato zip ou tgz (tar). Optamos por fazer o
download no formato zip por ser o mais conhecido.
Descompactar o arquivo no diretório de preferência. A versão 2.12, segue a
seguinte estrutura de diretórios como mostra a Figura 2.
Figura 2 – Estrutura de diretórios do JMeter
Para executar o JMeter, execute o arquivo JMeter.bat. Esse arquivo é encontrado
no diretório bin. Após uma breve pausa, será exibida a janela como mostra a Figura 3.
Figura 3 – Tela inicial do JMeter
Os dois itens apresentados, por padrão, na árvore são os principais e tem os
seguintes nomes:
Plano de Teste (Test Plan): agrupa itens que representam a simulação de
múltiplos usuários no plano de teste (samplers), além de configuradores e
controladores de lógica de execução dos testes;
Área de Trabalho (Workbench): utilizada para armazenamento
temporário de elementos. Os itens associados a este elemento não são
considerados como parte do Plano de teste.
3. UTILIZAÇÃO DO JMETER
3.1 Criando um Plano de Testes
O Plano de Testes é o componente básico para criação de qualquer script
utilizando o JMeter e descreve uma série de passos que a ferramenta irá executar
quando executar os testes. É no Plano de Testes que é adicionado os demais
componentes pertinentes aos testes que serão executados. Os principais componentes
são (Figura 4):
Thread Groups (Grupo de Usuários): Representa um grupo de usuário
executando determinada(s) solicitação (ões);
Samplers (Testador) – Representa uma solicitação, que pode ser HTTP,
FTP, SOAP, JDBC, LDAP e Java;
Logic Controllers (Controlador Lógico): Representam elementos que
ajudam a controlar a execução das requisições através de repetidores,
módulos, randomização entre outros;
Listerner (Ouvinte): elementos que visualizam resultados que podem ser
representados por gráficos, tabelas, entre outros;
Configuration Elements (Elementos de configuração): Para configuração
padrão de dados. Com ele conseguimos, por exemplo, configurar o
mesmo servidor HTTP para uma determinada solicitação;
Assertions (Asserções): elementos que possibilitam adicionar pontos de
afirmação para verificação se determinada resposta está de acordo com
alguma afirmação colocada no elemento Sampler;
Pre-processors (Pré-processadores): elementos que podem produzir
dados para enviar como parte de uma solicitação. Por exemplo, em teste
de uma rotina de inclusão de dados no sistema, devemos alternar alguns
dados que são exclusivos por definição. Temos pré-processadores que
são capazes de gerar nome_1, nome_2, nome_3, etc.
Post Processors (Pós-processadores): processadores de resultados de
requisições programadas. Pode extrair uma determinada parte da resposta
do servidor utilizando expressões regulares.
Timer (Temporizador): elementos que permitem um controle avançado
no intervalo de execução das requisições.
Figura 4 – Principais componentes do Plano de Teste
Os componentes apresentados acima devem obedecer a uma determinada hierarquia
no seu plano de teste. Na tabela abaixo são especificados quais componentes podem ser
adicionados em quais componentes:
Componente Componente que podem ser
adicionados
Plano de Teste Área de Trabalho, Ouvinte, Elementos de
Configuração, Asserções, Pré-processadores, Pós-
processadores, Timer.
Área de Trabalho Controlador Lógico, Testador, Elementos de
Configuração, Elementos que não são de teste.
Grupo de Usuários Controlador Lógico, Ouvinte, Testador, Timer,
Elementos de Configuração, Pré-processadores,
Pós-processadores.
Testador Elementos de Configuração, Asserções, Timer,
Pré-processadores, Pós-processadores.
Controlador Lógico Controlador Lógico, Ouvinte, Testador, Timer,
Elementos de Configuração, Pré-processadores,
Pós-processadores.
Ouvinte Nenhum
Elementos de Configuração Nenhum
Asserções Nenhum
Pré-processadores Nenhum
Pós-processadores Nenhum
Timer Nenhum
3.1.1 Adicionando Grupo de Usuários (Thread Groups)
Para simular as ações dos usuários o JMeter permite a adição de um componente
chamado “Thread Groups (Grupo de Usuários)”. Este componente agrega todos os
demais componentes necessários para os nossos testes, controlando as ações de usuários
fictícios no sistema. Por esse motivo é um dos componentes mais importantes no seu
plano de teste e deve ser configurado com bastante cuidado para que seja criado um
plano de teste que simule de fato a realidade.
Para adicionar um Grupo de Usuários ao Plano de Teste clique em
Editar/Adicionar/Threads (Users)/Grupo de Usuários, como mostra a Figura 5.
Figura 5 – Adicionado Grupo de Usuários
Será exibida a janela Grupo de Usuários, como mostra a Figura 6.
Figura 6 – Grupo de Usuários
Preencher os seguintes campos com os dados referentes ao teste:
Número de usuários Virtuais (threads): Quantidade de usuários
simultâneos
Tempo de Inicialização (Ramp-u Period) (segundos): Intervalo entre os
lançamentos de requisições. O valor informado será dividido pelo
número de requisições, e o resultado será o intervalo entre cada
requisição. Por exemplo, se informar 10 usuários e o tempo de
inicialização igual a 10 (10 / 10 = 1), teremos um disparo de atividade a
cada segundo.
Contador de Iteração (Loop Count): quantidade de vezes que as threads
serão executadas. Este número multiplicado pela quantidade de usuários
o que resulta no total de requisições que serão enviadas;
Infinito (Forever): Se selecionado, ignora o valor configurado no
Contador de Iteração e executa as tarefas até que seja cancelado a
execução no Plano de Teste;
Agendador (Schedule): Permite que seja feito o agendamento do disparo
do Grupo de Usuários em um determinado dia e horário.
Você pode adicionar um ou mais Grupo de Usuários em um Plano de Testes. O
JMeter por padrão dispara os Grupos de Usuários em paralelo, ou seja,
simultaneamente. Para alterar este comportamento, vá ao Plano de Teste e selecione a
opção “Executar Grupos de Usuários consecutivamente”.
3.1.2 Adicionando Testadores (Samplers)
Testadores (Samplers) são componentes que farão a requisição física para um
determinado servidor. No JMeter existem vários tipos de testadores para os mais
variados tipos de serviços, sendo que, os mais comuns são:
HTTP Request: Utilizado para simular requisições HTTP, fazendo com
que o JMeter atue como um browser;
SOAP/XML-RPC Request: Utilizado para requisições simples via
SOAP. Configurando uma URL e um XML para enviar para o servidor;
FTP Request: Utilizado para efetuar downloads via FTP;
JDBC Request: Utilizado para testes de carga em banco de dados via
JDBC. Pode ser utilizado também para tarefas simples como criar
tabelas, excluir dados antes de iniciar os testes.
LDAP Request: Utilizado para testes em servidores LDAP
Java Request: Utilizado para execução de testes em classes
customizadas. É um ponto de extensão do framework JMeter
Para adicionar um Testador (Samplers) clique em Editar/Adicionar/Testador
(Samplers), como mostra a Figura 7.
Figura 7 – Adicionando Testador (Samplers)
Utilizaremos como exemplo o uso do Testador o HTTP Request pelo fato de ser
o mais utilizado (Figura 8).
Figura 8 – HTTP Request
3.1.3 Adicionando Ouvinte (Listern)
São elementos que capturam os resultados gerados pelo Plano de Teste e permite
visualizá-lo na forma de tabelas, gráficos, árvores ou texto simples em alguns arquivos
de log. Eles fornecem acesso virtual aos dados obtidos pelo JMeter quando um caso de
teste é executado.
Para adicionar um Ouvinte (Listern) ao Grupo de Usuários clique em
Editar/Adicionar/Ouvinte, como mostra a Figura 9.
Figura 9 – Adicionando um Ouvinte
O Jmeter traz os seguintes Ouvintes (Listerns) por padrão:
Assertion Results: Quando utilizamos assertions (verificações nas
respostas dos samplers), este listener apresenta se determinada amostra
está de acordo com a Assertion ou não.
Graph Full Results: Não funciona corretamente na versão 1.9 do JMeter,
teoricamente deveria apresentar um gráfico de linha completo, com todas
as respostas dos Samplers.
Graph Results: Apresenta um gráfico simples e útil. Com média,
mediano, desvio padrão, mínimo e máximo do tempo de resposta das
requisições.
Mailer Visualizer: Não disponível
Simple Data Driver: Listener que tem a capacidade de armazenar os
dados de resposta em um arquivo XML.
Spline Visualizer: Gráfico que apresenta uma linha continua com todos
os resultados de tempo de resposta em milisegundos dos testes efetuados.
Composto por 10 pontos, cada ponto contém a média 10% das amostras.
Bastante útil para analisar impacto de performance e estabilidade.
Aggregate Report: Mostra totalizações diversas do resultado.
View Results in Table: Resultado individual de cada amostra, indicando
seu tempo de resposta e seu obteve sucesso ou não.
View Results Tree: Apresenta cada requisição e resposta retornada pelo
servidor. Excelente ferramenta para testes de caixa preta.
Cada Ouvinte (Listern) exibe o mesmo resultado de forma diferente. Por
exemplo, a ordem para visualizar o formulário gráfico de dados estatísticos do tempo de
resposta, você pode querer usar o Report Aggregate. Da mesma forma, para visualizar o
relatório estatístico dos mesmos dados em forma de tabela utilizando o Summary
Report ou Aggregate Report. Você pode também escolher a forma em que gostaria de
visualizar as requisições selecionando qualquer um destes ouvintes, mas eles escrevem
os mesmos dados brutos em um arquivo com extensão.jtl.
3.1.4 Adicionando Temporizador (Timer)
Timer é um componente opcional na construção do Plano de Teste. Ele faz com
que o Jmeter faça uma pausa por um determinado período de tempo entre dois pedidos
sucessivos. Como o Jmeter, por padrão, envia um pedido imediatamente após o outro, o
que pode sobrecarregar o servidor, adicionando um timer irá reduzir o risco de quebrar
o desempenho do servidor. Podemos, por exemplo, estabelecer um intervalo de tempo
padrão entre todas as threads do plano de testes, delays aleatórios entre threads e
também controle de frequência de vazão.
Um timer é extremamente útil se você estiver testando o software no aspecto
funcional.
Para adicionar um Temporizador (Timer) ao Grupo de Usuários clique em
Editar/Adicionar/Temporizador (Timer), como mostra a Figura 10.
Figura 10 – Adicionando Temporizador (Timer)
A seguir lista contendo todos os Timer disponíveis no Jmeter:
Constant Timer: Permite que você estabeleça um intervalo em
milissegundos padrão entre as threads;
Gaussian Random Timer: Permite intervalos aleatórios entre threads;
Uniform Random Timer: Permite intervalos aleatórios entre threads;
Constant Throughput Timer: Mantém a frequência de acesso de um
determinado Sampler.
3.1.5 Adicionando Assertions (Afirmação)
Assertions permitem que você inclua afirmações no Plano de Teste para verificar
se determinada resposta está de acordo com alguma afirmação colocada no Sampler.
Para adicionar um Temporizador (Timer) ao Grupo de Usuários clique em
Editar/Adicionar/Asserção (Assertions), como mostra a Figura 11.
Figura 11 – Adicionando Assertions (Asserção – afirmação)
O Jmeter permite que você especifique suas afirmações utilizando Expressões
regulares
3.1.6 Adicionando Pré-processador (Pre Processors)
3.1.7 Adicionando Pós-processador (Post Processors)