guia para testes de performance jmeter

Upload: marcelo-toledo-silva

Post on 07-Mar-2016

15 views

Category:

Documents


0 download

DESCRIPTION

Jmeter, uma ferramenta free para testes de performance

TRANSCRIPT

  • Guia para Testes de Performance JMeter.doc ltima atualizao em: 6/5/2008 10:33 Pgina 1 de 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 2 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 3 de 29

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

    2 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 4 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-to-Point.

    3 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 5 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 6 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 7 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 8 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. Protocol: http.

    3.2.3 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 9 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 10 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 11 de 29

    4 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 12 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 13 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 14 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 15 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 16 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. Se preferir, voc pode utilizar tambm, simplesmente, Ctrl + C e Ctrl + V!

    4.3.3.2 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 17 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 18 de 29

    4.3.4.2 Parametrizando o id_sessao Em todas as requisies HTTP (HTTP Request) realizadas aps a 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 19 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 20 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 21 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 22 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 23 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 24 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 Reenviando uma Requisio na Ocorrncia de uma ExcecaoTimestampRegistroInvalido Nos 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 25 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 26 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.

    5 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 27 de 29

    b. Loop Count (Forever): Desmarcado c. Loop Count: 1

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

    Clique no menu Run > Start

    5.1.2 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 ao lado, significa que esto Ok.

    A requisio que aparecer com o smbolo 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 28 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 29 de 29

    Clique no menu Run > Start

    Acompanhe o resultado pelo Aggregate Report.