Você está na página 1de 30

FAPEG

U NIVERSIDADE F EDERAL DE G OIS


I NSTITUTO DE I NFORMTICA
PAPPE I NTEGRAO

Manual de Utilizao da Ferramenta


JMeter
<Verso v1.0>

Goinia
2013

Esta obra est licenciada sob uma Licena Creative Commons Attribution 3.0.

PAPPE Integrao

Agradecimentos

Esta conquista resultado de apoio e ajuda de muitas pessoas que contriburam


para a realizao deste trabalho.
FAPEG e ao INF-UFG pelo auxlio financeiro e tcnico.
s empresas participantes e patrocinadoras deste projeto: Canion Software,
Deciso Sistemas, Meta Tecnologia e Tron Informtica.
Aos nossos parceiros: Mowe Tecnologia, TupiLabs e CERCOMP-UFG.
Aos colaboradores responsveis pela execuo deste projeto: Dr Auri Marcelo
Rizzo Vincenzi, Dr Cssio Leonardo Rodrigues, Dr Celso Gonalves Camilo Junior, Msc
Jacson Rodrigues Barbosa, Adailton Ferreira de Arajo, Andressa Martins, Guilherme
Sampaio Soares, Jailton Alkimin Louzada, Malba Jacob Prudente, Paulo Marcos Soares
Rodrigues e Vinicius Vieira Pessoni.

Resumo

Integrao, PAPPE. Manual de Utilizao da Ferramenta JMeter. Goinia,


2013. 29p. Manual Tcnico. Instituto de Informtica, Universidade Federal de
Gois.

Palavraschave

Teste de software, Micro e Pequena Empresa de TI.

Contedo

Lista de Figuras

Lista de Tabelas

8
8
8

Introduo
1.1
1.2

Testes de Performance, Carga e Stress


2.1
2.2
2.3

Requisitos de Instalao
3.1.1

Verso Java

3.1.2

Sistema Operacional

3.1.3

Instalao

3.1.4

Executando o JMeter

Utilizao da Ferramenta
4.1

Teste de Performance
Teste de Carga
Teste de Stress

JMeter
3.1

Objetivos do manual
Organizao do Manual

Criando um Plano de Teste (Test Plan)


4.1.1

Adicionando usurios virtuais

4.1.2

Adicionando Requisies de Servios ao Thread Group

4.1.3

Utilizando o HTTP Request

4.1.4

Relatrios de execuo e Asseres

Executando os Testes
5.1

Preparando o Script de Teste


5.1.1

Setando a Quantidade de Usurios Virtuais

5.1.2

Aplicao Sob Teste

5.1.3

Apertando o Play

5.1.4

Relatrios
Summary Report
Graph Results
Assertion Results e Response Assertion

Concluso

9
9
9
10
11
11
11
11
11
12
13
13
13
15
15
16
20
20
21
23
23
24
24
25
26
28

Bibliografia

29

Lista de Figuras

3.1

Tela inicial do JMeter

12

4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8

Caminho para o Thread Groups


Thread Groups
Caminho para os controladores de requisies
HTTP Request
Caminho para os componentes Listener
Listener adicionados ao Test Plan
Caminho para os componentes de assero
Response Assertion

14
14
15
16
17
17
18
19

5.1
5.2
5.3
5.4
5.5
5.6
5.7
5.8
5.9
5.10
5.11

Caminho para abrir o script


Encontrando o script de teste
Script completo
Adicionando usurios virtuais
Informando a URL da aplicao sob teste
Executando o teste
Summary Report
Graph Results
Response Assertion
Exemplo de todas as amostras com retorno correto.
Exemplo de amostras com valores de retorno divergente.

20
21
22
22
23
24
25
26
26
27
27

Lista de Tabelas

CAPTULO 1

Introduo

1.1

Objetivos do manual

A proposta deste manual demonstrar a utilizao de uma importante ferramenta


open source para teste de carga, stress e performance: Apache JMeter. Esta ferramenta
auxilia no dimensionamento e avaliao dos limites dos sistemas web.

1.2

Organizao do Manual

CAPTULO 2

Testes de Performance, Carga e Stress

Nos dias de hoje a Internet tem um papel fundamental na disseminao de conhecimento e informaes diversas. Com isso, as aplicaes web tm obtido uma grande
importncia no cotidiano das pessoas e por conseqncia, das empresas. A possibilidade
de mltiplos usurios utilizando a aplicao, interface com sistemas heterogneos e acessos remotos dos mais variados tipos tm demandado cada vez mais esforos para manter
a integridade da infra-estrutura intacta.
Para aferir a capacidade, a disponibilidade em casos extremos ou apenas verificar o tempo
de resposta de uma determina funcionalidade da aplicao, se faz necessrio a utilizao
de ferramentas que permitam a simulao do uso e a devida documentao dos resultados
obtidos.
Diante desse cenrio a ferramenta de teste de performance Apache JMeter tem se destacado por sua facilidade de uso e versatilidade.

2.1

Teste de Performance

Os testes de performance tem como finalidade verificar o desempenho do sistema


em condies normais de uso, onde o foco obter informaes relevantes da utilizao
das principais funes.

2.2

Teste de Carga

Os testes de carga, diferentemente dos testes de performance, tem como objetivo


a verificao do comportamento do produto com uma determinada quantidade de usurios. Dessa forma, o sistema observado sobre a utilizao de um nmero estimado de
usurios prximo das condies reais.

2.3 Teste de Stress

2.3

10

Teste de Stress

O objetivo de um teste de stress explorar os limites do sistema, aumentando


a carga indefinidamente at provocar um crash. A principal diferena entre o teste
de carga e o teste performance que, enquanto o primeiro preocupa-se em determinar
como o sistema se comporta em caso de um grande numero de acessos, o segundo tem
por objetivo testar a quantidade mxima de usurios, determinando, assim, Seu limite de
utilizao.

CAPTULO 3

JMeter

O Apache JMeter uma ferramenta desktop para testes de performance, desenvolvida utilizando a linguagem Java e licenciada sob os termos da Apache License, Version 2.0. Esta ferramenta foi primeiramente utilizada para realizar testes em aplicaes
web, mas tem expandido suas funcionalidades, podendo realizar testes funcionais, testes
em bancos de dados entre outros.

3.1
3.1.1

Requisitos de Instalao
Verso Java

Devido ao fato do JMeter utilizar apenas as APIs padro do Java, ele requer uma
JVM 6 (Java Virtual Machine) ou superior.

3.1.2

Sistema Operacional

Como o JMeter desenvolvido 100% em Java, possvel rod-lo em qualquer


sistema operacional que tenha uma implementao Java compatvel.

3.1.3

Instalao

Para instalar o JMeter basta efetuar o download da verso mais recente


(http://jmeter.apache.org/) e descompactar o arquivo no diretrio em que ser instalado. A verso 2.9, segue a seguinte estrutura de diretrios 1 :
apache-jmeter-2.9
apache-jmeter-2.9/bin
apache-jmeter-2.9/docs
1 Voc

pode renomear o diretrio raiz (ou seja, apache-jmeter-2.9), se quiser, mas no altere os nomes
de sub-diretrio.

3.1 Requisitos de Instalao

12

apache-jmeter-2.9/extras
apache-jmeter-2.9/lib/
apache-jmeter-2.9/lib/ext
apache-jmeter-2.9/lib/junit
apache-jmeter-2.9/printable_docs

3.1.4

Executando o JMeter

Para executar o JMeter, execute o arquivo ApacheJMeter.jar. Esse arquivo


encontrado no diretrio bin. Aps uma breve pausa, a GUI (Graphical User Interface)
JMeter deve aparecer (figura 3.1).

Figura 3.1: Tela inicial do JMeter

CAPTULO 4

Utilizao da Ferramenta

4.1

Criando um Plano de Teste (Test Plan)

O TestPlan o componente bsico para a criao de qualquer script (.jmx)


utilizando o JMeter e descreve uma srie de passos que a ferramenta ir executar quando
rodar os testes. A ele adicionado os demais componentes pertinentes aos testes que sero
executados. Os principais componentes adicionados ao TestPlan so:
Listeners - elementos que capturam os resultados gerados pelo plano de testes e
apresenta-os em um determinado formato, com vinculo ou no a um TestPlan;
Assertions - possibilidade de adicionar pontos de afirmao para verificao se
determinada resposta est de acordo com alguma afirmao colocada no elemento
Sampler;
Thread Groups - representao de um grupo de usurio executando determinada(s)
solicitao (es);
Samplers - representao de uma solicitao, que pode ser HTTP, FTP, SOAP,
JDBC, LDAP e Java.

4.1.1

Adicionando usurios virtuais

Para simular as aes dos usurios o JMeter permite a adio de um componente


chamado Thread Groups. Este componente agrega todos os demais elementos necessrios para a execuo de nossos testes, controlando as aes de pseudos usurios no
sistema. Para adicion-lo ao Test Plan basta acionar: Edit/Add/Threads(Users)/Thread
Groups. Conforme figura 4.1.

4.1 Criando um Plano de Teste (Test Plan)

14

Figura 4.1: Caminho para o Thread Groups

Conforme podemos ver, figura 4.2, o Thread Group contm o Thread Properties que permite controlar o nmero de usurios alterando o item Number of Threads
(users) que por definio vem setado com o valor de 1 (um) usurio.

Figura 4.2: Thread Groups

4.1 Criando um Plano de Teste (Test Plan)

4.1.2

15

Adicionando Requisies de Servios ao Thread Group

Para efetuar uma requisio a um determinado servio que queremos testar


o JMeter faz uso de controladores chamados, genericamente, de Sampler. Existem
vrios tipos de Sampler, para os mais variados tipos de servios, sendo que, os
mais comuns so: HTTP Request1 , FTP Request, SOAP/XML-RPC Request , JDBC
Request, LDAP Request e Java Request. O caminho para os controladores de requisio
: Edit/Add/Sampler, conforme figura 4.3.

Figura 4.3: Caminho para os controladores de requisies

4.1.3

Utilizando o HTTP Request

Este componente responsvel por gerenciar as requisies HTTP enviadas a


uma pgina web qualquer. O HTTP Request possui, na seo Web Server, um campo
chamado Server Name or IP. Esse campo onde devemos informar a URL ou o IP
para a pgina web que ser alvo dos testes. Existe, ainda, o campo Port Number onde
deve-se informar a porta de comunicao para a pgina indicada, caso seja omitido esta
informao o JMeter admite a porta como sendo a 80. Veja figura 4.4.
1 Este

manual se limitar a mostrar o funcionamento do HTTP Request, por se tratar do controlador de


requisio mais largamente utilizado.

4.1 Criando um Plano de Teste (Test Plan)

16

Figura 4.4: HTTP Request

4.1.4

Relatrios de execuo e Asseres

Aps termos criando um Test Plan, adicionado um Thread Group para


gerenciar a quantidade de usurios virtuais e adicionado um controlador de requisies
HTTP Request, chegou a hora inserir componentes para a coleta e avaliao dos dados
obtidos com a execuo do script.
Para tanto, temos os elementos Listener que so elementos que monitoram a execuo
do script, coletam e apresentam os dados em determinados formatos para uma analise em
tempo de execuo e/ou analise posterior. O caminho para adicionarmos alguns desses
elementos esto em: Edit/Add/Listerner. Conforme figura 4.5.

4.1 Criando um Plano de Teste (Test Plan)

17

Figura 4.5: Caminho para os componentes Listener

Neste manual utilizaremos os seguintes Listener: Summary Report, Graph


Results e o Assertion Results (figura 4.6).

Figura 4.6: Listener adicionados ao Test Plan

As vezes precisamos verificar se os testes que estamos executando atingiram


uma meta pr-estabelecida, como por exemplo: responderam dentro de um dado limite de
tempo ou responderam com um determinado cdigo de retorno. Para validar as respostas

4.1 Criando um Plano de Teste (Test Plan)

18

do servidor, existem os componentes de asseres, Assertions. Podemos introduzir um


Assertion pelo caminho: Edit/Add/Assertion (figura 4.7).

Figura 4.7: Caminho para os componentes de assero

Para este manual utilizamos o elemento de assero Response Assertion, que


permite configurar quais tipos de respostas HTML esperamos para os nossos testes.
Perceba que o valor 200|302, no campo Patterns to Test, foi setado para dizer ao
JMeter que esperamos como resposta os cdigos HTML 200 (o servidor retornou a pgina
com sucesso) ou cdigo HTML 302 (pgina movida temporariamente ou sua pgina foi
redirecionada), figura 4.8.

4.1 Criando um Plano de Teste (Test Plan)

19

Figura 4.8: Response Assertion

verso2

Agora podemos salvar o script, preferencialmente em um servidor de controle de


assim, poder ter um total controle das alteraes ocorridas.

2 Existem vrios tipos de servidores de verso open source, onde os mais populares so: Servidores SVN,

GitHub e CVS.

CAPTULO 5

Executando os Testes

Agora que j criamos o script para o JMeter, s nos falta executar os testes.
Deve-se ter em mente que o ambiente para execuo dos testes de performance, carga
e principalmente os testes de stress devem ser exclusivos para esta finalidade. Como a
inteno criar um grande volume de usurios acessando a aplicao, a rede e o servidor
sob teste estaro sobrecarregados impossibilitando o acesso por usurios reais.

5.1

Preparando o Script de Teste

Em nosso exemplo faremos um teste de carga simples em um website qualquer.


Para isso, usaremos o script criado no captulo anterior.
Abra o JMeter e v em: File/Open, como podemos ver na figura 5.1.

Figura 5.1: Caminho para abrir o script

5.1 Preparando o Script de Teste

21

O aplicativo abrir um pop-up para a escolha do script que usaremos nos testes,
escolha o que criamos anteriormente e clique em open, figura 5.2.

Figura 5.2: Encontrando o script de teste

5.1.1

Setando a Quantidade de Usurios Virtuais

No capitulo 4 foi criado um script bsico com os seguintes componentes: Test Plan, Thread Group, HTTP Request,Summary Report,Graph Results,Assertion Results,Response Assertion e WorkBench, conforme figura 5.3.

5.1 Preparando o Script de Teste

22

Figura 5.3: Script completo

Vamos agora acrescentar 10 usurios virtuais, alterando o campo Number of


Treads (Users) do componente Thread Group. Com isso, teremos uma carga de 10
usurios acessando nossa aplicao simultaneamente, figura 5.4.

Figura 5.4: Adicionando usurios virtuais

5.1 Preparando o Script de Teste

5.1.2

23

Aplicao Sob Teste

Foi criado um plano de teste contendo uma poro de componentes, cada qual
com suas particularidades, mas ainda no dissemos ao JMeter qual o caminho para a
aplicao que gostaramos de testar. O elemento que usaremos para informar qual a URL
ou o IP do sistema sob teste o HTTP Request.
Este componente contem um campo chamado Server Name or IP, onde setaremos o a
URL da aplicao sob testes, figura 5.5.

Figura 5.5: Informando a URL da aplicao sob teste

Desta forma indicamos o caminho onde o JMeter deve efetuar os testes. Como
no informamos a porta, ele utilizar a porta web padro 80.

5.1.3

Apertando o Play

Agora que j indicamos a quantidade de usurios que iro acessar a aplicao


e j informamos o caminho para o servidor web que est localizado o sistema, podemos
executar nossos testes.
Podemos executar os teste atravs do menu Run/Start ou simplesmente clicando no
icone Start, conforme figura 5.6.

5.1 Preparando o Script de Teste

24

Figura 5.6: Executando o teste

5.1.4

Relatrios

Ao executar os testes precisaremos coletar as mtricas necessrias para a analise


do comportamento do sistema. A entra em ao os componentes Listener.
Summary Report
Este elemento apresenta um resumo do comportamento do servidor ao executar
os testes, figura 5.7. As mtricas apresentadas por ele so:
Label - Rotulo do elemento de requisio de servio adicionado ao Test Plan,
em nosso caso HTTP Requeste.
Samples - Quantidade de amostras, isto , pedidos de requisio HTTP que
ocorreu para o determinado segmento.
Average - Tempo mdio, em milissegundos, de resposta para determinado pedido
de requisio HTTP.
Min - Tempo mnimo, em milissegundos, de resposta para um determinado
pedido de requisio HTTP.
Max - Tempo maximo, em milissegundos, de resposta para um determinado
pedido de requisiao HTTP.
Std. Dev - O desvio padro apresenta os casos em que determinadas amostras
se distanciam do comportamento mdio das demais amostras em razo do tempo
de resposta. Quanto menor este valor mais consistente o padro de tempo das
amostras coletadas.

5.1 Preparando o Script de Teste

25

Error % - Porcentagem de erros nas amostra executadas.


Throughput - a medida da quantidade de requisies por unidade de tempo.
KB/sec - Medida do Throughput em Kilobytes por segundo.
Avg. Bytes - Tamanho mdio das respostas das amostras em bytes.

Figura 5.7: Summary Report

Graph Results
O comportamento da aplicao pode ser analisado, tambm, de maneira grfica
em tempo de execuo. Para isto, usamos o elemento Graph Results, figura 5.8, que
apresenta alguns dos seguintes parmetros:
Average - Mdia entre o tempo e o nmero de requisies;
Median - Mediana um valor que divide as amostras em duas partes iguais.
Metade das amostras so menores que a mdia e a outra metade maior que a mdia,
podendo ter algumas amostras com valor igual a mdia;
Deviation - a medida da variao de um dado conjunto de dados;
Throughput - Nmero de amostra por unidade de tempo.

5.1 Preparando o Script de Teste

26

Figura 5.8: Graph Results

Assertion Results e Response Assertion


Vimos no captulo 4 que possvel determinar valores para avaliarmos os
resultados. Utilizando o elemento Response Assertion, podemos determinar os valores
esperados e todos os outros sero considerados como incorretos, conforme figura 5.9.

Figura 5.9: Response Assertion

Aps indicarmos quais valores so esperados para uma correta execuo, precisamos avaliar o resultado dos testes. Verificando se o comportamento do sistema est de

5.1 Preparando o Script de Teste

27

acordo com o especificado. Para efetuarmos esta verificao utilizamos o elemento Assertion Results. A figura 5.10 mostra um exemplo onde todas as amostras obtiveram um
valor de retorno igual ao esperado, conforme indicado no Response Assertion.

Figura 5.10: Exemplo de todas as amostras com retorno correto.

Em caso de obtermos valores de retorno diferente do indicado, o Assertion


Results apresenta erro para cada amostra que obteve valor divergente do estabelecido,
conforme figura 5.11.

Figura 5.11: Exemplo de amostras com valores de retorno divergente.

CAPTULO 6

Concluso

O Apache JMeter uma excelente ferramenta para teste de performance, carga


e stress. Mas ela no se limita apenas a estes tipos de testes, podendo ser utilizada para
efetuar testes em bancos de dados, testes funcionais e vrios outros. Alm da grande
variedade de componentes inclusos na ferramenta, ainda possvel adicionar extenses
para desempenhar as mais variadas tarefas.

Bibliografia

Você também pode gostar