manual de utilização do jmeter.doc

20
Prefeitura de Belo Horizonte PBH Empresa de Informática e Informação de Belo Horizonte S/A PRODABEL Superintendência de Arquitetura de Sistemas - SAS Manual de Utilização do Jmeter

Upload: regincr

Post on 25-Jan-2016

60 views

Category:

Documents


41 download

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)