You are on page 1of 29

Guia para Testes de

Performance Usando a
Ferramenta JMeter

Verso 01.01 | Data 11/01/2008

Guia para Testes de Performance JMeter.doc


ltima atualizao em: 6/5/2008 10:33

Pgina 1 de 29

NDICE
1. Objetivo ...................................................................................................................................................3
2. Conceitos ................................................................................................................................................3
2.1 JMeter ...............................................................................................................................................3
2.1.1 Plano de Testes (Test Plan)...................................................................................................3
2.1.1.1 Thread Group ............................................................................................................3
2.1.1.2 Configuration Elements .............................................................................................3
2.1.1.3 Listeners ....................................................................................................................3
2.1.1.4 Timers........................................................................................................................3
2.1.1.5 Controllers .................................................................................................................3
2.1.1.6 Assertions ..................................................................................................................4
2.1.1.7 Pre-Processor Elements............................................................................................4
2.1.1.8 Post-Processor Elements ..........................................................................................4
2.1.2 Tipos de Requisio ...............................................................................................................4
3. Criando um Plano de Testes .................................................................................................................4
3.1 Passos Iniciais ..................................................................................................................................4
3.2 Adicionando um Thread Group ao Plano de Testes ........................................................................5
3.2.1 Configurando um Thread Group ............................................................................................6
3.2.2 Adicionando Elementos de Configurao ao Thread Group .................................................6
3.2.2.1 HTTP Cookie Manager ..............................................................................................6
3.2.2.2 HTTP Request Defaults.............................................................................................7
3.2.3 Adicionando Listeners ao Thread Group ...............................................................................8
3.2.3.1 Aggregate Report ......................................................................................................8
3.2.3.2 View Results Tree .....................................................................................................9
3.2.4 Adicionando Timers ao Thread Group .................................................................................10
3.2.4.1 Constant Timer ........................................................................................................10
4. Gravando a Execuo de um Caso de Uso no Plano de Testes .....................................................11
4.1 Adicionando um HTTP Proxy Server ao Plano de Testes .............................................................11
4.2 Executando o Caso de Uso a Ser Gravado no Plano de Testes ...................................................12
4.3 Organizando as Requisies HTTP do Plano de Testes ...............................................................13
4.3.1 Organizao Preliminar ........................................................................................................13
4.3.2 Adicionando um Loop Controller ..........................................................................................14
4.3.3 Adicionando Assertions ........................................................................................................15
4.3.3.1 Assertions para a Requisio de Login e Requisies do Caso de Uso ................15
4.3.3.2 Assertion para a Requisio de Logout ..................................................................16
4.3.4 Adicionando Extratores de Expresses Regulares..............................................................17
4.3.4.1 Extraindo o id_sessao .............................................................................................17
4.3.4.2 Parametrizando o id_sessao ...................................................................................18
4.3.4.3 Extraindo o id_contexto_sessao..............................................................................18
4.3.4.4 Parametrizando o id_contexto_sessao ...................................................................19
4.3.4.5 Extraindo o timestamp.............................................................................................20
4.3.4.6 Parametrizando o timestamp...................................................................................21
4.3.5 Adicionando um CSV Data Set Config.................................................................................21
4.3.5.1 Montando um CSV Data Set ...................................................................................21
4.3.5.2 Extraindo a chave primria......................................................................................22
4.3.5.3 Parametrizando a chave primria............................................................................23
4.3.6 Reenviando uma Requisio na Ocorrncia de uma ExcecaoTimestampRegistroInvalido24
4.3.6.1 Extraindo a ExcecaoTimestampRegistroInvalido....................................................24
4.3.6.2 Adicionando um Controlador Condicional (If Controller) .........................................25
5. Executando o Plano de Testes ...........................................................................................................26
5.1 Executando o Plano de Testes para Um Usurio ..........................................................................26
5.1.1 Configuraes Iniciais ..........................................................................................................26
5.1.2 Acompanhando os Resultados do Teste pelo Aggregate Report........................................27
5.1.3 Acompanhando os Resultados do Teste pelo View Results Tree .......................................27
5.1.4 Limpando os Resultados do ltimo Teste ...........................................................................28
5.2 Executando o Plano de Testes para Vrios Usurios....................................................................28
Guia para Testes de Performance JMeter.doc
ltima atualizao em: 6/5/2008 10:33

Pgina 2 de 29

Objetivo
Este guia apresenta como utilizar a ferramenta JMeter para a elaborao e execuo de casos de
testes.

Conceitos
Esta seo explica os principais conceitos utilizados neste guia.

2.1

JMeter
JMeter uma ferramenta utilizada para testes de carga em servios oferecidos por sistemas
computacionais. Esta ferramenta parte do projeto Jakarta da Apache Software Foundation. Para a
realizao de testes, a ferramenta JMeter disponibiliza diversos tipos de requisies e assertions (para
validar o resultado dessas requisies), alm de controladores lgicos como laos e controles
condicionais para serem utilizados na construo de planos de teste, que correspondem aos testes
funcionais.
O JMeter disponibiliza tambm um controle de threads, chamado Thread Group, no qual possvel
configurar o nmero de threads, a quantidade de vezes que cada thread ser executada e o intervalo
entre cada execuo, que ajuda a realizar os testes de carga. E por fim, existem diversos listeners, que
podem ser usados para gerar grficos e tabelas, com base nos resultados das requisies ou dos
assertions,.

2.1.1

Plano de Testes (Test Plan)

Para qualquer teste que venha a ser feito utilizando o JMeter, necessrio criar um Plano de Testes
(Test Plan) incluindo os elementos do teste. Estes elementos podem ser: Thread Group, Configuration
Element, Listener, Timer, Controller, Assertion, Pre-Processor Element ou Post-Processor Element.
Abaixo descrevemos cada um deles.
2.1.1.1

Thread Group

Este ponto de comeo, todos os outros elementos do Test Plan devem estar sob este. Como o prprio
nome ressalta, este controla as threads que sero executadas pelo teste.
2.1.1.2

Configuration Elements

Embora no faa requisies (exceto para HTTP Proxy Server), este elemento pode modificar as
requisies.
2.1.1.3

Listeners

Estes so os elementos que fornecem acesso aos resultados dos testes realizados no JMeter.
2.1.1.4

Timers

Por padro, o JMeter faz requisies sem pausas entre elas. Os timers so utilizados para incluir
pausas entre as requisies.
2.1.1.5

Controllers

Os Controllers esto divididos em dois grupos Samplers e Logic Controllers:

Guia para Testes de Performance JMeter.doc


ltima atualizao em: 6/5/2008 10:33

Pgina 3 de 29

Samplers So controladores pr-definidos para requisies especficas. Podendo ser

customizada com a insero de configuraes (Configurations), Assertions e etc.


Logic Controllers So controladores mais genricos. Podendo ser customizados com a insero

de outros controllers, configuration elements, assertions, etc.


2.1.1.6

Assertions

Usadas para verificar se a resposta obtida na requisio a esperada. Podem ser usadas expresses
regulares na comparao.
2.1.1.7

Pre-Processor Elements

Executa alguma ao antes de fazer a requisio. Mais usado para pr-configuraes das requisies.
2.1.1.8

Post-Processor Elements

Executa alguma ao depois de fazer a requisio. Mais usado para processar as respostas da
requisio.
2.1.2

Tipos de Requisio

O JMeter suporta os seguintes tipos de requisio em suas rotinas de testes:

FTP Permite criar requisies usando o protocolo FTP (com autenticao ou no) e executa o
comando de retrieve em um arquivo especfico.

HTTP Permite criar requisies usando o protocolo HTTP ou HTTPS (com autenticao ou no),
podendo incluir parmetros ou arquivos a requisio, escolher o mtodo usado (GET ou POST) e
manipular cookies. Este sampler possui dois tipos de implementao: Java HTTP ou Commons
HTTPClient.

JDBC Com esta requisio possvel executar queries em um banco de dados especfico.

Objeto Java Ajuda no teste de carga de classes Java, exigindo para isso a implementao de
uma classe do tipo JavaSamplerClient para executar o mtodo a ser testado. A estrutura deste
objeto similar a usada pelo JUnit.

SOAP/XML-RPC Permite enviar requisies SOAP para um WebService, ou enviar XML-RPC


atravs do protocolo HTTP.

LDAP Permite enviar requisies para um servidor LDAP. Possui uma implementao
simplificada e outra estendida.

Testes JUnit Usado para fazer teste de carga em testes de unidade que utilizam o framework
JUnit.

Existem outros tipos de requisies que, at a atual verso do JMeter, esto em verso alfa, eles so:
Web service (SOAP), Access Log, BeanShell, BSF, TCP, JMS Publisher, JMS Subscriber, JMS Point-toPoint.

Criando um Plano de Testes


Esta seo apresenta os procedimentos para criar um plano de testes.

3.1

Passos Iniciais
A seguir so apresentados os passos iniciais para elaborao do plano de testes usando o JMeter:

Guia para Testes de Performance JMeter.doc


ltima atualizao em: 6/5/2008 10:33

Pgina 4 de 29

Abra o JMeter;

Configure o Test Plan;


a. No campo Comments descreva o que for necessrio para executar seu plano de testes.

Salve seu plano de testes.


a. Clique no menu File > Save.

b. D um nome ao plano de testes e pressione o boto Save.

3.2

Adicionando um Thread Group ao Plano de Testes


Conforme vimos anteriormente, um thread group ponto de comeo e todos os outros elementos do
plano de testes devem estar sob ele.

Com o boto direito do mouse, clique em Test Plan > Add > Thread Group.

Guia para Testes de Performance JMeter.doc


ltima atualizao em: 6/5/2008 10:33

Pgina 5 de 29

3.2.1

Configurando um Thread Group

Os seguintes campos do thread group devem ser configurados:

Action to be taken after a Sampler error: Determina a ao a ser tomada aps a ocorrncia de erro
na execuo do plano de testes. Defina com o valor Stop Test (Parar o teste).

Number of threads (users): Determina a quantidade de usurios simultneos executando o caso de


uso do plano de testes.

Loop Count: Determina a quantidade de vezes que o plano de testes ser executado. Manter o valor
desse campo = 1.

3.2.2

Adicionando Elementos de Configurao ao Thread Group

No Thread Group adicione os seguintes elementos de configurao:


3.2.2.1

HTTP Cookie Manager

Mantm a configurao de gerenciamento de cookies.

Com o boto direito do mouse no Thread Group, clique em Add > Config Element > HTTP Cookie
Manager.

Guia para Testes de Performance JMeter.doc


ltima atualizao em: 6/5/2008 10:33

Pgina 6 de 29

Os seguintes campos do HTTP Cookie Manager devem ser configurados:


a. Marque a opo clear cookies each iteration?.
b. Selecione a poltica de cookies: rfc2109.

3.2.2.2

HTTP Request Defaults

Mantm a configurao HTTP default para ser usada em requisies HTTP que no tenham sido
configuradas.

Com o boto direito do mouse no Thread Group, clique em Add > Config Element > HTTP Request
Defaults.

Guia para Testes de Performance JMeter.doc


ltima atualizao em: 6/5/2008 10:33

Pgina 7 de 29

Os seguintes campos do HTTP Request Defaults devem ser configurados:


a. Server name or IP: Nome ou IP da mquina que ser usada para executar o plano de
testes.
b. Port Number: Nmero da porta da mquina que ser usada para executar o plano de testes.
c.

3.2.3

Protocol: http.

Adicionando Listeners ao Thread Group

No Thread Group adicione os seguintes listeners: Aggregate Report e View Results Tree.
3.2.3.1

Aggregate Report

Mantm o relatrio com os tempos de cada requisio que o plano de testes executa.

Com o boto direito do mouse no Thread Group, clique em Add > Listener > Aggregate Report.

Guia para Testes de Performance JMeter.doc


ltima atualizao em: 6/5/2008 10:33

Pgina 8 de 29

3.2.3.2

View Results Tree

Mantm uma rvore contendo as requisies realizadas com sucesso e com erro. Serve para identificar
a ocorrncia de erros no plano de testes.

Com o boto direito do mouse no Thread Group, clique em Add > Listener > View Results Tree.

Guia para Testes de Performance JMeter.doc


ltima atualizao em: 6/5/2008 10:33

Pgina 9 de 29

3.2.4

Adicionando Timers ao Thread Group

No Thread Group adicione o seguinte timer: Constant Timer.


3.2.4.1

Constant Timer

Mantm o tempo de espera entre as threads executadas.

Com o boto direito do mouse no Thread Group, clique em Add > Timer > Constant Timer.

Guia para Testes de Performance JMeter.doc


ltima atualizao em: 6/5/2008 10:33

Pgina 10 de 29

Gravando a Execuo de um Caso de Uso no Plano de Testes


Os prximos passos descrevem como gravar a execuo de um caso de uso dentro do seu plano de
testes.

4.1

Adicionando um HTTP Proxy Server ao Plano de Testes


Os seguintes passos devem ser realizados para adicionar um HTTP Proxy Server ao seu plano de
testes:

Clique com o boto direito no WorkBench e escolha a opo Add > Non-Test Elements > HTTP
Proxy Server.

Configure o Target Controller para: Test Plan > Thread Group.

Guia para Testes de Performance JMeter.doc


ltima atualizao em: 6/5/2008 10:33

Pgina 11 de 29

Inclua um padro de URL para que apenas as requisies s PRs sejam adicionadas ao seu plano
de testes:
a. No campo URL Patterns to Include, pressione o boto Add e digite o texto: .*/PR.*

No seu browser altere as configuraes de servidor proxy. Pode ser tambm pelo Regedit:
a. Proxy Server: http://localhost:8080.
b. Proxy Override: Vazio.

4.2

Executando o Caso de Uso a Ser Gravado no Plano de Testes


Os seguintes passos devem ser realizados para executar o caso de uso a ser gravado no seu plano de
testes:

Abra o browser para executar seu caso de uso:


a. Pressione o boto Start do HTTP Proxy Server adicionado ao seu plano de testes.
b. Entre com a URL do ambiente no qual voc executar seu caso de uso.
c.

Faa o login.

d. Execute o seu caso de uso. Vamos ilustrar o passo-a-passo de um caso de uso de consulta
e detalhamento, por exemplo, consulta e detalhamento de usurios do SCA.
i. Clique no menu Segurana e Controle de Acesso (SCA) > Usurios > Cadastro de
Usurios;
ii. Informe o cdigo do usurio;
iii. Pressione o boto Localizar;
Guia para Testes de Performance JMeter.doc
ltima atualizao em: 6/5/2008 10:33

Pgina 12 de 29

iv. Selecione o registro encontrado;


v. Pressione o boto Detalhar;
vi. Clique no link Menu Principal;
vii. Clique no link encerrar Sesso.
e. Pressione o boto Stop do HTTP Proxy Server adicionado ao seu plano de testes.

Observe que as vrias requisies que foram feitas aparecem no seu plano de testes na ordem em
que foram realizadas. O nosso trabalho agora organizar essas requisies.

4.3

Organizando as Requisies HTTP do Plano de Testes


Os seguintes passos devem ser realizados para organizar as requisies HTTP que devem permanecer
no seu plano de testes:

4.3.1

Organizao Preliminar

Primeiro, caso no tenha adicionado um padro de URL para filtrar e inserir no seu plano de testes
apenas as requisies s PRs, elimine a solicitao de todas as imagens, javascripts, folhas de estilo
css que foram carregadas para o seu plano de testes. As requisies /sfi_com_sca/Menu e
/sfi_com_sca/Menu/ tambm podem ser excludas pois no representam requisies HTTP efetivas.
Basta selecionar esses itens e pressionar a tecla Delete.
Restaro apenas as requisies feitas para as PRs do sistema. Vamos organiz-las em 3 grupos agora:

Login;
a. /sfi_com_sca/PRMontarMenuAcesso;
b. /sfi_com_sca/PRGerenciarLoginUsuario.

Realizao do caso de uso (vai variar de acordo com o caso de uso executado);
a. /sfi_com_sca/PRManterUsuario (vrias);

Guia para Testes de Performance JMeter.doc


ltima atualizao em: 6/5/2008 10:33

Pgina 13 de 29

b. /sfi_com_sca/PRMontarMenuAcesso. A ltima que representa a sada da tela do caso de


uso para a tela de menu do sistema.

Logout.
a. /sfi_com_sca/PREfetuarLogout.

4.3.2

Adicionando um Loop Controller

Adicione no thread group um controlador do tipo Loop Controller e insira nele todas as requisies
relacionadas execuo do caso de uso:

Com o boto direito do mouse no Thread Group, clique em Add > Logic Controller > Loop Controller.
Ele ser usado para que possamos fazer teste de carga, repetindo vrias vezes a execuo do caso
de uso.

Agora selecione as requisies relacionadas ao caso de uso, recorte (Ctrl + X) e cole dentro do
Loop Controller (Clique com o boto direito do mouse no Loop Controller e selecione a opo
Paste).

Mova o Loop Controller para depois da requisio PRGerenciarLoginUsuario. Clique, arraste e solte
em cima da requisio PRGerenciarLoginUsuario e selecione a opo Insert After.

Guia para Testes de Performance JMeter.doc


ltima atualizao em: 6/5/2008 10:33

Pgina 14 de 29

4.3.3

Adicionando Assertions

Adicionaremos assertions para verificar se uma requisio HTTP foi realizada com sucesso ou no pelo
nosso plano de testes. Teremos, basicamente 2 tipos de assertion:

Para a requisio de Login e requisies de execuo do caso de uso;

Para a requisio de Logout.

4.3.3.1

Assertions para a Requisio de Login e Requisies do Caso de Uso

Os seguintes passos devem ser realizados para adicionar assertions para verificar se a requisio de
login e as requisies do caso de uso sendo testado esto sendo executadas com sucesso:

Com o boto direito do mouse na Requisio HTTP, clique em Add > Assertions > Response
Assertion.

Configure os seguintes campos da Assertion:


a. Name: Processada com Sucesso.
b. Pattern Matching Rule: Contains.
c.

Pattern Matching Rule: Not.

d. Patterns To Test: Pressione o boto Add e insira o texto Log da Exceo.

Aps preparar a primeira Response Assertion, voc pode copiar e colar a mesma nas outras
requisies HTTP:

Guia para Testes de Performance JMeter.doc


ltima atualizao em: 6/5/2008 10:33

Pgina 15 de 29

a. Com o boto direito do mouse na Assertion, clique em Copy.

b. Com o boto direito do mouse na Requisio HTTP destino, clique em Paste.

c.
4.3.3.2

Se preferir, voc pode utilizar tambm, simplesmente, Ctrl + C e Ctrl + V!

Assertion para a Requisio de Logout

Os seguintes passos devem ser realizados para adicionar uma assertion para verificar se a requisio
de logout est sendo executada com sucesso:

Com o boto direito do mouse na Requisio HTTP, clique em Add > Assertions > Response
Assertion.

Configure os seguintes campos da Assertion:


a. Name: Operao concluda com sucesso
b. Pattern Matching Rule: Contains
c.

Patterns To Test: Pressione o boto Add e insira o texto Operao concluda com
sucesso.

Guia para Testes de Performance JMeter.doc


ltima atualizao em: 6/5/2008 10:33

Pgina 16 de 29

4.3.4

Adicionando Extratores de Expresses Regulares

Como o plano de testes ser executado vrias vezes e por vrios usurios simultneos, necessrio
parametrizar algumas informaes que no podem ser as mesmas para esses vrios usurios virtuais.
Na situao mais simples precisaremos tratar os parmetros da requisio HTTP: id_sessao e
id_contexto_sessao. Conseguiremos isso fazendo uso de extratores de expresses regulares para
extrair e parametrizar tais informaes da requisio HTTP.
4.3.4.1

Extraindo o id_sessao

Os seguintes passos devem ser realizados para extrair o parmetro id_sessao:

Com o boto direito do mouse na Requisio HTTP /sfi_com_sca/PRMontarMenuAcesso, clique em


Add > Post Processors > Regular Expression Extractor.

Configure os seguintes campos do Extrator de Expresso Regular:


a. Name: Extrair id_sessao
b. Reference name: jm_id_sessao
c.

Regular Expression: name="id_sessao"\s*(\r\n\s*)?value="([^"]*)"

d. Template: $2$
e. Match No. (0 for Random): 1

Guia para Testes de Performance JMeter.doc


ltima atualizao em: 6/5/2008 10:33

Pgina 17 de 29

4.3.4.2
Em

Parametrizando o id_sessao
todas

as

requisies

HTTP

(HTTP

Request)

realizadas

aps

requisio

/sfi_com_sca/PRMontarMenuAcesso, devemos substituir o valor do id_sessao que est fixo pelo nome
do parmetro que extramos para o id_sessao.

Clique na requisio HTTP, localize o parmetro id_sessao e substitua seu valor pelo texto
${jm_id_sessao}.

4.3.4.3

Extraindo o id_contexto_sessao

Os seguintes passos devem ser realizados para extrair o parmetro id_contexto_sessao:

Com o boto direito do mouse na Requisio HTTP /sfi_com_sca/PRManterUsuario que executou o


evento processarFiltroConsulta (na execuo do evento processarFiltroConsulta do seu caso de uso
gerado o parmetro id_contexto_sessao), clique em Add > Post Processors > Regular Expression
Extractor.

Guia para Testes de Performance JMeter.doc


ltima atualizao em: 6/5/2008 10:33

Pgina 18 de 29

Configure os seguintes campos do Extrator de Expresso Regular:


a. Name: Extrair id_contexto_sessao
b. Reference name: jm_id_contexto_sessao
c.

Regular Expression: name="id_contexto_sessao"\s*(\r\n\s*)?value="([^"]*)"

d. Template: $2$
e. Match No. (0 for Random): 1

4.3.4.4

Parametrizando o id_contexto_sessao

Em todas as requisies HTTP (HTTP Request) realizadas aps a requisio da qual extramos o
id_contexto_sessao, devemos substituir o valor do id_contexto_sessao que est fixo pelo nome do
parmetro que extramos para o mesmo.

Clique na requisio HTTP, localize o parmetro id_contexto_sessao e substitua seu valor pelo
texto ${jm_id_contexto_sessao}.

Guia para Testes de Performance JMeter.doc


ltima atualizao em: 6/5/2008 10:33

Pgina 19 de 29

4.3.4.5

Extraindo o timestamp

Para testar eventos de alterao ou excluso, se faz necessrio parametrizar tambm o timestamp do
registro sendo alterado.
Os seguintes passos devem ser realizados para extrair o parmetro timestamp (o exemplo abaixo foi
preparado para o caso de uso de alterao de tipo de usurio):

Com o boto direito do mouse clique na Requisio HTTP /sfi_com_sca/PRManterTipoUsuario que


executou o evento exibirAlteracao (na execuo do evento exibirAlteracao do seu caso de uso
gerado o parmetro timestamp), clique em Add > Post Processors > Regular Expression Extractor.

Configure os seguintes campos do Extrator de Expresso Regular:


a. Name: Extrair timestamp
b. Reference name: jm_timestamp
c.

Regular Expression: name="timestamp"\s*(\r\n\s*)?value="([^"]*)"

d. Template: $2$
e. Match No. (0 for Random): 1

Guia para Testes de Performance JMeter.doc


ltima atualizao em: 6/5/2008 10:33

Pgina 20 de 29

4.3.4.6

Parametrizando o timestamp

Em todas as requisies HTTP (HTTP Request) realizadas aps a requisio da qual extramos o
timestamp, devemos substituir o valor do timestamp que est fixo pelo nome do parmetro que
extramos para o mesmo.

Clique na requisio HTTP, localize o parmetro timestamp e substitua seu valor pelo texto
${jm_timestamp}.

4.3.5

Adicionando um CSV Data Set Config

Para testar eventos de alterao ou excluso, interessante montarmos um conjunto de dados


dinmicos que nos permitir alterar ou excluir registros diferentes. Portanto, para trabalhar com dados
dinmicos, utilizaremos um arquivo CSV contendo esses dados e no nosso plano de testes utilizaremos
um componente CSV Data Set Config.
4.3.5.1

Montando um CSV Data Set

Os seguintes passos devem ser realizados para adicionar um componente CSV Data Set Config (o
exemplo abaixo foi preparado para o caso de uso de alterao de tipo de usurio):

Com o boto direito do mouse clique no Loop Controller e selecione a opo Add > Config Element
> CSV Data Set Config.

Guia para Testes de Performance JMeter.doc


ltima atualizao em: 6/5/2008 10:33

Pgina 21 de 29

Mova o CSV Data Set Config para antes da requisio HTTP que possui o evento
processarFiltroConsulta.

Configure os seguintes campos do CSV Data Set Config:


a. Filename: chaves_primarias.csv
b. Variable Names (comma-delimited): jm_CdTipoUsuario_CSV
c.

Delimiter: \n

d. Stop Thread on EOF?: True (Para o caso de testes de excluso).

O arquivo chaves_primarias.csv (o nome do arquivo fica a sua escolha) conter as chaves primrias
dos registros que sero alterados ou excludos. Uma chave em cada linha do arquivo. Se a chave
for composta separe os dados que a compem por vrgulas.

4.3.5.2

Extraindo a chave primria

Associado ao conjunto de dados dinmicos, precisaremos extrair e parametrizar a chave primria do


registro sendo alterado ou excludo. Realize os seguintes passos para extrair o parmetro
chave_primaria:

Com o boto direito do mouse na Requisio HTTP /sfi_com_sca/PRManterTipoUsuario que


executou o evento processarFiltroConsulta, clique em Add > Post Processors > Regular Expression
Extractor.

Guia para Testes de Performance JMeter.doc


ltima atualizao em: 6/5/2008 10:33

Pgina 22 de 29

Configure os seguintes campos do Extrator de Expresso Regular:


a. Name: Extrair chave_primaria
b. Reference name: jm_chave_primaria
c.

Regular Expression: name="chave_primaria"\s*(\r\n\s*)?value="([^"]*)"

d. Template: $2$
e. Match No. (0 for Random): 1

4.3.5.3

Parametrizando a chave primria

Em todas as requisies HTTP (HTTP Request) realizadas aps a requisio da qual extramos a chave
primria, devemos substituir o valor da chave primria que est fixo pelo nome do parmetro que
extramos para o mesmo.

Clique na requisio HTTP, localize o parmetro chave_primaria e substitua seu valor pelo texto
${jm_chave_primaria}.

Guia para Testes de Performance JMeter.doc


ltima atualizao em: 6/5/2008 10:33

Pgina 23 de 29

Ateno: No teste de um evento de alterao, se existirem informaes que no devem ser alteradas,
por exemplo, a descrio de um tipo de usurio, voc dever seguir o mesmo procedimento
apresentado anteriormente para extrair e parametrizar essa informao!
4.3.6
Nos

Reenviando uma Requisio na Ocorrncia de uma ExcecaoTimestampRegistroInvalido


testes

de

eventos

de

alterao

ou

excluso,

possvel

que

excees

do

tipo

ExcecaoTimestampRegistroInvalido aconteam. Neste caso podemos adicionar elementos ao plano de


testes que possibilitam reenviar uma requisio de alterao quando ocorrer uma exceo
ExcecaoTimestampRegistroInvalido.
Realize os seguintes passos para reenviar uma requisio HTTP:

Na requisio HTTP contendo o evento processarAlteracao, extraia a possvel ocorrncia da


ExcecaoTimestampRegistroInvalido;

Aps a requisio HTTP contendo o evento processarAlteracao, adicionaremos um controlador


condicional (If Controller) que ir verificar a ocorrncia da exceo. Em caso afirmativo
reenviaremos a requisio HTTP contendo o evento processarAlteracao.

4.3.6.1

Extraindo a ExcecaoTimestampRegistroInvalido

Realize os seguintes passos para extrair a ExcecaoTimestampRegistroInvalido:

Com o boto direito do mouse na Requisio HTTP /sfi_com_sca/PRManterTipoUsuario que


executou o evento processarAlteracao, clique em Add > Post Processors > Regular Expression
Extractor.

Configure os seguintes campos do Extrator de Expresso Regular:


a. Name: Extrair ExcecaoTimestampRegistroInvalido
b. Reference name: jm_ExcecaoTimestampRegistroInvalido
c.

Regular Expression: ExcecaoTimestampRegistroInvalido

d. Template: $0$
e. Match No. (0 for Random): 1

Guia para Testes de Performance JMeter.doc


ltima atualizao em: 6/5/2008 10:33

Pgina 24 de 29

4.3.6.2

Adicionando um Controlador Condicional (If Controller)

Realize os seguintes passos para adicionar um controlador condicional (If Controller):

Com o boto direito do mouse clique no Loop Controller e selecione a opo Add > Logic Controller
> If Controller.

Mova o If Controller para depois da requisio HTTP que possui o evento processarAlteracao.

Configure os seguintes campos do If Controller:


a. Name: Se ExcecaoTimestampRegistroInvalido
b. Condition

(Javascript):

"${jm_ExcecaoTimestampRegistroInvalido}"

"ExcecaoTimestampRegistroInvalido"

Guia para Testes de Performance JMeter.doc


ltima atualizao em: 6/5/2008 10:33

Pgina 25 de 29

==

Copie a requisio HTTP do evento processarAlteracao e cole no If Controller:


a. Selecione a requisio HTTP do evento processarAlteracao e pressione as teclas Ctrl + C;
b. Selecione o If Controller e pressione as teclas Ctrl + V;
c.

Lembre-se de remover desta cpia da requisio HTTP do evento processarAlteracao, o


extrator de expresso regular da ExcecaoTimestampRegistroInvalido. Selecione o extrator e
pressione a tecla Delete.

Se voc chegou at aqui, seu plano de testes est pronto. No se esquea de eventualmente salvar seu
plano de testes para no perder as alteraes que j foram feitas nele. Antes de execut-lo para vrios
usurios importante testar com um usurio para verificar que seu plano de testes est bem
configurado. Na prxima sesso iremos demonstrar como executar o seu plano de testes.

Executando o Plano de Testes


Os prximos passos descrevem como executar o seu plano de testes. Iremos demonstrar a execuo
para um usurio, que nos ser til para verificar se o plano de testes est bem configurado.

5.1

Executando o Plano de Testes para Um Usurio


Esta seo apresenta as configuraes de execuo do plano de testes para um usurio e como
acompanhar os resultados do teste sendo realizado.

5.1.1

Configuraes Iniciais

Para executar o plano de testes para um usurio, verifique primeiro se as configuraes que indicam a
quantidade de usurios e a continuidade do teste esto da seguinte forma:

No Thread Group:
a. Number of threads (users): 1

Guia para Testes de Performance JMeter.doc


ltima atualizao em: 6/5/2008 10:33

Pgina 26 de 29

b. Loop Count (Forever): Desmarcado


c.

Loop Count: 1

No Loop Controller:
a. Loop Count (Forever): Desmarcado
b. Loop Count: 1

5.1.2

Clique no menu Run > Start

Acompanhando os Resultados do Teste pelo Aggregate Report

Acompanhe o resultado pelo Aggregate Report.

Se estiver Ok, a coluna Error apresentar 0.00%.

Se ocorrerem erros, veja os detalhes no View Results Tree.

5.1.3

Acompanhando os Resultados do Teste pelo View Results Tree

Na ocorrncia de erros, voc poder verificar o que aconteceu analisando o listener View Results Tree.

As requisies que aparecerem com o smbolo

A requisio que aparecer com o smbolo

ao lado, significa que esto Ok.

ao lado, significa que est com problemas.

a. Clique na requisio com problema e analise a aba Response Data para identificar o erro
ocorrido na requisio.

Guia para Testes de Performance JMeter.doc


ltima atualizao em: 6/5/2008 10:33

Pgina 27 de 29

5.1.4

Limpando os Resultados do ltimo Teste

Antes de iniciar uma nova bateria de testes, limpe o resultado da ltima execuo do plano de testes
realizando os seguintes passos:

Clique no Aggregate Report;

Selecione o menu Run > Clear.

5.2

Executando o Plano de Testes para Vrios Usurios


Para executar o plano de testes para vrios usurios, verifique primeiro se as configuraes que
indicam a quantidade de usurios e a continuidade do teste esto da seguinte forma:

No Thread Group:
a. Number of threads (users): 10 ou 25 ou 50 (quantidade a definir)
b. Loop Count (Forever): Desmarcado
c.

Loop Count: 1

No Loop Controller:
a. Loop Count (Forever): Marcado

Para executar para vrios usurios remova o listener View Results Tree, pois este consome muitos
recursos de memria.
a. Com o boto direito clique no listener e selecione a opo Remove. Ou Simplesmente
selecione o listener e pressione a tecla delete.

Guia para Testes de Performance JMeter.doc


ltima atualizao em: 6/5/2008 10:33

Pgina 28 de 29

Clique no menu Run > Start

Acompanhe o resultado pelo Aggregate Report.

Guia para Testes de Performance JMeter.doc


ltima atualizao em: 6/5/2008 10:33

Pgina 29 de 29

You might also like