jMeter - Guia rápido

Antes de entrar nos detalhes do JMeter, vamos primeiro entender alguns jargões associados ao teste de qualquer aplicativo.

  • Performance Test- Este teste define a melhor expectativa de desempenho possível sob uma determinada configuração de infraestrutura. Ele também destaca no início do processo de teste se alguma alteração precisa ser feita antes de o aplicativo entrar em produção.

  • Load Test - Este teste é usado basicamente para testar o sistema sob a carga superior sob a qual foi projetado para operar.

  • Stress Test - Este teste é uma tentativa de quebrar o sistema sobrecarregando seus recursos.

O que é JMeter?

JMeter é um software que pode realizar teste de carga, teste de negócios orientado para desempenho (funcional), teste de regressão, etc., em diferentes protocolos ou tecnologias.

Stefano Mazzocchida Apache Software Foundation foi o desenvolvedor original do JMeter. Ele o escreveu principalmente para testar o desempenho do Apache JServ (agora chamado de projeto Apache Tomcat). Posteriormente, o Apache reprojetou o JMeter para aprimorar a GUI e adicionar recursos de teste funcional.

JMeter é um aplicativo de desktop Java com uma interface gráfica que usa a API gráfica Swing. Portanto, pode ser executado em qualquer ambiente / estação de trabalho que aceite uma máquina virtual Java, por exemplo - Windows, Linux, Mac, etc.

Os protocolos suportados pelo JMeter são -

  • Web - sites HTTP, HTTPS 'web 1.0' web 2.0 (ajax, flex e flex-ws-amf)

  • Serviços da Web - SOAP / XML-RPC

  • Banco de dados via drivers JDBC

  • Diretório - LDAP

  • Serviço orientado a mensagens via JMS

  • Serviço - POP3, IMAP, SMTP

  • Serviço FTP

Recursos do JMeter

A seguir estão alguns dos recursos do JMeter -

  • Por ser um software de código aberto, está disponível gratuitamente.

  • Possui uma interface de usuário simples e intuitiva.

  • O JMeter pode realizar testes de carga e desempenho para muitos tipos de servidor diferentes - Web - HTTP, HTTPS, SOAP, Banco de dados via JDBC, LDAP, JMS, Mail - POP3, etc.

  • É uma ferramenta independente de plataforma. No Linux / Unix, o JMeter pode ser chamado clicando no script de shell do JMeter. No Windows, ele pode ser invocado iniciando o arquivo jmeter.bat.

  • Ele tem suporte completo a Swing e a componentes leves (JAR pré-compilado usa pacotes javax.swing. *).

  • O JMeter armazena seus planos de teste em formato XML. Isso significa que você pode gerar um plano de teste usando um editor de texto.

  • Sua estrutura multi-threading completa permite a amostragem simultânea por muitos threads e a amostragem simultânea de diferentes funções por grupos de threads separados.

  • É altamente extensível.

  • Ele também pode ser usado para realizar testes automatizados e funcionais dos aplicativos.

Como funciona o JMeter?

JMeter simula um grupo de usuários enviando solicitações a um servidor de destino e retorna estatísticas que mostram o desempenho / funcionalidade do servidor / aplicativo de destino por meio de tabelas, gráficos, etc.

Dê uma olhada na figura a seguir, que mostra como o JMeter funciona -

JMeter é uma estrutura para Java, portanto, o primeiro requisito é ter o JDK instalado em sua máquina.

Requisitos do sistema

JDK 1.6 ou superior.
Memória Sem requisitos mínimos.
Espaço em disco Sem requisitos mínimos.
Sistema operacional Sem requisitos mínimos.

Etapa 1: verificar a instalação do Java

Em primeiro lugar, verifique se você tem o Java instalado em seu sistema. Abra seu console e execute um dos seguintesjava comandos baseados no sistema operacional em que você está trabalhando.

SO Tarefa Comando
janelas Abrir console de comando c: \> versão java
Linux Abra o terminal de comando $ java -version
Mac Terminal aberto máquina: ~ joseph $ java -version

Se você tiver o Java instalado em seu sistema, obterá uma saída apropriada com base no sistema operacional em que está trabalhando.

SO Resultado
janelas

versão java "1.7.0_25"

Java (TM) SE Runtime Environment (versão 1.7.0_25-b15)

Servidor VM Java HotSpot (TM) de 64 bits (versão 23.25-b01, modo misto)

Linux

versão java "1.7.0_25"

Java (TM) SE Runtime Environment (versão 1.7.0_25-b15)

Servidor VM Java HotSpot (TM) de 64 bits (versão 23.25-b01, modo misto)

Mac

versão java "1.7.0_25"

Java (TM) SE Runtime Environment (versão 1.7.0_25-b15)

Servidor VM Java HotSpot (TM) de 64 bits (versão 23.25-b01, modo misto)

Se você não tiver o Java instalado, instale o Java Software Development Kit (SDK) em www.oracle.com/technetwork/java/javase/downloads/index.html . Estamos assumindo o Java 1.7.0_25 como a versão instalada para este tutorial.

Etapa 2: definir o ambiente Java

Colocou o JAVA_HOMEvariável de ambiente para apontar para o local do diretório base, onde o Java está instalado em sua máquina. Por exemplo -

SO Resultado
janelas Defina a variável de ambiente JAVA_HOME como C: \ Program Files \ Java \ jdk1.7.0_25
Linux export JAVA_HOME = / usr / local / java-current
Mac export JAVA_HOME = / Library / Java / Home

Anexe a localização do compilador Java ao caminho do sistema.

SO Resultado
janelas Anexe a string; C: \ Arquivos de programas \ Java \ jdk1.7.0_25 \ bin ao final da variável do sistema, Caminho.
Linux exportar PATH = $ PATH: $ JAVA_HOME / bin /
Mac não requerido

Verifique a instalação do Java usando java -version comando conforme explicado acima.

Etapa 3: Baixe o JMeter

Baixe a versão mais recente do JMeter de https://jmeter.apache.org/download_jmeter.cgi. Para este tutorial, baixamos apache-jmeter-2.9 e o copiamos para a pasta C: \> JMeter.

A estrutura do diretório deve ser semelhante à mostrada abaixo -

  • apache-jmeter-2.9
  • apache-jmeter-2.9\bin
  • apache-jmeter-2.9\docs
  • 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

Você pode renomear o diretório pai (ou seja, apache-jmeter-2.9) se quiser, mas não altere nenhum dos nomes dos subdiretórios.

Etapa 4: execute o JMeter

Após baixar o JMeter, vá para o diretório bin . Neste caso, é/home/manisha/apache-jmeter-2.9/bin. Agora clique no seguinte -

SO Resultado
janelas jmeter.bat
Linux jmeter.sh
Mac jmeter.sh

Após uma pequena pausa, a GUI do JMeter deve aparecer, que é um aplicativo Swing, como pode ser visto na imagem a seguir -

Esta é a página principal e a página padrão da ferramenta.

O que é um plano de teste?

Um plano de teste pode ser visto como um contêiner para a execução de testes. Ele define o que testar e como fazer. Um plano de teste completo consiste em um ou mais elementos, como grupos de encadeamentos, controladores lógicos, controladores de geração de amostra, ouvintes, temporizadores, asserções e elementos de configuração. Um plano de teste deve ter pelo menos um grupo de encadeamentos.

Escrevendo um Plano de Teste

Siga as etapas abaixo para escrever um plano de teste -

Etapa 1: iniciar a janela JMeter

Abra a janela JMeter clicando em /home/manisha/apache-jmeter-2.9/bin/jmeter.sh. A janela do JMeter aparecerá como abaixo -

Esta é uma janela JMeter simples e em branco, sem nenhum elemento adicional adicionado a ela. Ele contém dois nós -

  • Test Plan node - é onde o plano de teste real é mantido.

  • Workbench node- Ele simplesmente fornece um local para armazenar temporariamente os elementos de teste enquanto não estão em uso, para fins de copiar / colar. Quando você salva seu plano de teste, os itens do Workbench não são salvos com ele.

Etapa 2: Adicionar / Remover Elementos

Os elementos (que serão discutidos no próximo capítulo Elementos do plano de teste ) podem ser adicionados a um plano de teste clicando com o botão direito do mouse no nó Plano de teste e escolhendo um novo elemento da lista "adicionar".

Como alternativa, você pode carregar um elemento de um arquivo e adicioná-lo escolhendo a opção "mesclar" ou "abrir".

Por exemplo, vamos adicionar um elemento Thread Group a um Plano de Teste como mostrado abaixo -

Para remover um elemento, certifique-se de que o elemento esteja selecionado, clique com o botão direito do mouse no elemento e escolha a opção "remover".

Etapa 3: carregar e salvar os elementos

Para carregar um elemento do arquivo -

  • Clique com o botão direito do mouse no elemento da árvore existente ao qual deseja adicionar o elemento carregado.
  • Selecione Mesclar.
  • Escolha o arquivo onde você salvou os elementos.
  • O JMeter irá mesclar os elementos na árvore.

Por padrão, o JMeter não salva o elemento, você precisa salvá-lo explicitamente.

Para salvar os elementos da árvore -

  • Clique com o botão direito no elemento.
  • Escolha a opção Salvar seleção como ....

O JMeter salvará o elemento selecionado, além de todos os elementos filho abaixo dele. Por padrão, o JMeter não salva os elementos, você precisa salvá-lo explicitamente conforme mencionado anteriormente.

Etapa 4: Configurando os Elementos da Árvore

Qualquer elemento no Plano de Teste pode ser configurado usando os controles presentes no quadro do lado direito do JMeter. Esses controles permitem configurar o comportamento daquele elemento de teste específico. Por exemplo, o Thread Group pode ser configurado para um número de usuários, períodos de aceleração, etc., conforme mostrado abaixo -

Etapa 5: Salvar o plano de teste

Você pode salvar um plano de teste inteiro usando qualquer Save ou "Save Test Plan As ..." no menu Arquivo.

Etapa 6: execute o plano de teste

Você pode executar o Plano de Teste clicando em Start(Control + r) do Runitem do menu. Quando o JMeter começa a funcionar, ele mostra uma pequena caixa verde na extremidade direita da seção, logo abaixo da barra de menu.

Os números à esquerda da caixa verde são o número de tópicos ativos / número total de tópicos. Isso se aplica apenas a um teste executado localmente; eles não incluem nenhum encadeamento iniciado em sistemas remotos ao usar o modo cliente-servidor.

Etapa 7: interromper o plano de teste

Você pode interromper o teste de duas maneiras -

  • Usando Stop(Control + '.'). Ele interrompe os threads imediatamente, se possível.

  • Usando Shutdown(Control + ','). Ele solicita que os threads parem no final de qualquer trabalho atual.

Um plano de teste JMeter compreende os elementos de teste discutidos abaixo. Um plano de teste compreende pelo menos um grupo de encadeamentos. Dentro de cada Thread Group, podemos colocar uma combinação de um ou mais dos outros elementos - Sampler, Logic Controller, Configuration Element, Listener e Timer. Cada Sampler pode ser precedido por um ou mais elementos de pré-processador, seguidos por elemento de pós-processador e / ou elemento de asserção. Vamos ver cada um desses elementos em detalhes -

Grupo de Tópicos

Os elementos do grupo de threads são os pontos iniciais de seu plano de teste. Como o nome sugere, os elementos do grupo de encadeamentos controlam o número de encadeamentos que o JMeter usará durante o teste. Também podemos controlar o seguinte por meio do Grupo de Tópicos -

  • Definir o número de tópicos

  • Definir o tempo de aceleração

  • Definir o número de iterações de teste

O painel de controle do grupo de tópicos se parece com isto -

O Painel do Grupo de Threads contém os seguintes componentes -

  • Action to be taken after a Sampler error - Caso ocorra algum erro durante a execução do teste, você pode deixar o teste:

    • Continue para o próximo elemento no teste

    • Stop Thread para parar o Tópico atual.

    • Stop Test completamente, caso você queira inspecionar o erro antes de continuar em execução.

  • Number of Threads - Simula o número de usuários ou conexões com seu aplicativo de servidor.

  • Ramp-Up Period Define quanto tempo o JMeter levará para colocar todos os threads em execução.

  • Loop Count - Define o número de vezes para executar o teste.

  • Scheduler checkbox - Depois de selecionada, a seção Configuração do agendador aparece na parte inferior do painel de controle.

  • Scheduler Configuration - Você pode configurar a hora de início e de término da execução do teste.

Controladores

JMeter possui dois tipos de controladores - Samplers e controladores lógicos .

Samplers

Os amostradores permitem que o JMeter envie tipos específicos de solicitações a um servidor. Eles simulam uma solicitação do usuário para uma página do servidor de destino. Por exemplo, você pode adicionar um sampler de Solicitação HTTP se precisar executar um POST, GET ou DELETE em um serviço HTTP.

Alguns exemplos úteis são -

  • Pedido HTTP
  • Pedido FTP
  • Pedido JDBC
  • Pedido Java
  • Pedido SOAP / XML
  • Pedidos RPC

A captura de tela a seguir mostra um Painel de controle do amostrador de solicitação HTTP -

Controladores lógicos

Os controladores lógicos permitem controlar a ordem de processamento dos Samplers em um Thread. Os controladores lógicos podem alterar a ordem de uma solicitação proveniente de qualquer um de seus elementos filhos. Alguns exemplos são - ForEach Controller, While Controller, Loop Controller, IF Controller, Run Time Controller, Interleave Controller, Throughput Controller e Run Once Controller.

A imagem a seguir mostra um Painel de Controle do Controlador de Loop -

A lista a seguir consiste em todos os controladores lógicos que JMeter fornece -

  • Controlador simples
  • Loop Controller
  • Controle Único
  • Controlador Interleave
  • Controlador Aleatório
  • Controlador de ordem aleatória
  • Controlador de rendimento
  • Runtime Controller
  • Se controlador
  • Enquanto controlador
  • Switch Controller
  • ForEach Controller
  • Controlador de Módulo
  • Incluir controlador
  • Controlador de transação
  • Controlador de Gravação

Fragmentos de Teste

Um fragmento de teste é um tipo especial de elemento colocado no mesmo nível do elemento Thread Group. É distinto de um Grupo de Threads porque não é executado a menos que seja referenciado por um Controlador de Módulo ou um Include_Controller. Este elemento é puramente para reutilização de código em Planos de Teste.

Ouvintes

Os ouvintes permitem que você visualize os resultados dos Samplers na forma de tabelas, gráficos, árvores ou texto simples em alguns arquivos de log. Eles fornecem acesso visual aos dados coletados pelo JMeter sobre os casos de teste à medida que um componente do Sampler do JMeter é executado.

Ouvintes podem ser adicionados em qualquer lugar do teste, incluindo diretamente no plano de teste. Eles coletarão dados apenas de elementos em seu nível ou abaixo. A lista a seguir consiste em todos os ouvintes que o JMeter fornece -

  • Resultado da amostra salvar configuração
  • Gráfico de resultados completos
  • Resultados do gráfico
  • Spline Visualizer
  • Resultados da afirmação
  • Exibir árvore de resultados
  • Relatório Agregado
  • Ver resultados na tabela
  • Gravador de dados simples
  • Resultados do Monitor
  • Gráfico de distribuição (alfa)
  • Gráfico Agregado
  • Mailer Visualizer
  • Ouvinte BeanShell
  • Relatório de Resumo

Cronômetros

Por padrão, um encadeamento JMeter envia solicitações sem pausar entre cada amostrador. Isso pode não ser o que você deseja. Você pode adicionar um elemento de cronômetro que permite definir um período de espera entre cada solicitação.

A lista a seguir mostra todos os temporizadores que o JMeter fornece -

  • Temporizador Constante
  • Gaussian Random Timer
  • Temporizador Aleatório Uniforme
  • Temporizador de rendimento constante
  • Sincronizando temporizador
  • JSR223 Time
  • BeanShell Time
  • BSF Time
  • Poisson Random Time

A captura de tela a seguir mostra um painel de controle de temporizador constante -

Afirmações

As asserções permitem que você inclua algum teste de validação na resposta de sua solicitação feita usando um Sampler. Usando asserções, você pode provar que seu aplicativo está retornando os dados corretos. JMeter destaca quando uma afirmação falha.

A lista a seguir consiste em todas as afirmações que o JMeter fornece -

  • Asserção Beanshell
  • Asserção BSF
  • Compare Assertion
  • JSR223 Assertion
  • Asserção de Resposta
  • Asserção de duração
  • Asserção de tamanho
  • Asserção XML
  • Asserção BeanShell
  • MD5Hex Assertion
  • Asserção HTML
  • Asserção XPath
  • Asserção de esquema XML

A captura de tela a seguir mostra um Painel de Controle de Asserção de Resposta -

Elementos de Configuração

Os Elementos de configuração permitem que você crie padrões e variáveis ​​para serem usados ​​por Samplers. Eles são usados ​​para adicionar ou modificar solicitações feitas por Samplers.

Eles são executados no início do escopo do qual fazem parte, antes de quaisquer Samplers que estejam localizados no mesmo escopo. Portanto, um Elemento de Configuração é acessado apenas de dentro da ramificação onde está colocado.

A lista a seguir consiste em todos os elementos de configuração que o JMeter fornece -

  • Counter
  • CSV Data Set Config
  • Padrões de solicitação de FTP
  • Gerente de autorização HTTP
  • Gerenciador de Cache HTTP
  • Gerenciador de cookies HTTP
  • Servidor Proxy HTTP
  • Padrões de solicitação HTTP
  • Gerenciador de cabeçalho HTTP
  • Padrões de solicitação Java
  • Configuração de Keystore
  • Configuração de conexão JDBC
  • Elemento de configuração de login
  • Padrões de solicitação de LDAP
  • Padrões de solicitação estendida de LDAP
  • Configuração do amostrador TCP
  • Variáveis ​​Definidas pelo Usuário
  • Elemento de configuração simples
  • Variável aleatória

Elementos de pré-processador

Um elemento de pré-processador é algo executado antes de um amostrador ser executado. Eles são freqüentemente usados ​​para modificar as configurações de uma Solicitação de Amostra antes de sua execução ou para atualizar variáveis ​​que não são extraídas do texto de resposta.

A lista a seguir consiste em todos os elementos de pré-processador que o JMeter fornece -

  • Analisador de link HTML
  • Modificador de reescrita de URL HTTP
  • Modificador de parâmetro de usuário HTTP
  • Parâmetros do usuário
  • JDBC PreProcessor
  • JSR223 PreProcessor
  • Parâmetros do usuário RegEx
  • BeanShell PreProcessor
  • BSF PreProcessor

Elementos Pós-processador

Um pós-processador é executado depois que um amostrador termina sua execução. Este elemento é mais frequentemente usado para processar os dados de resposta, por exemplo, para recuperar um determinado valor para uso posterior.

A lista a seguir consiste em todos os elementos de pós-processador que o JMeter fornece -

  • Extrator de Expressão Regular
  • Extrator XPath
  • Processador de ação de status de resultado
  • JSR223 PostProcessor
  • JDBC PostProcessor
  • BSF PostProcessor
  • Extrator CSS / JQuery
  • BeanShell PostProcessor
  • Debug PostProcessor

Ordem de execução dos elementos de teste

A seguir está a ordem de execução dos elementos do plano de teste -

  • Elementos de configuração
  • Pre-Processors
  • Timers
  • Sampler
  • Pós-processadores (a menos que SampleResult seja nulo)
  • Assertions (a menos que SampleResult seja null)
  • Ouvintes (a menos que SampleResult seja nulo)

Vamos construir um plano de teste simples que testa uma página da web. Escrevemos um plano de teste no Apache JMeter para que possamos testar o desempenho da página da web mostrada pela URL - www.tutorialspoint.com .

Iniciar JMeter

Abra a janela JMeter clicando em /home/manisha/apache-jmeter-2.9/bin/jmeter.sh. A janela JMeter aparece como abaixo -

Renomear o plano de teste

Altere o nome do nó do plano de teste para Teste de Amostra na caixa de texto Nome . Você precisa mudar o foco para o nó workbench e voltar para o nó do plano de teste para ver o nome sendo refletido.

Adicionar Grupo de Tópicos

Agora adicionamos nosso primeiro elemento na janela. Adicionamos um Thread Group, que é um espaço reservado para todos os outros elementos, como Samplers, Controllers e Listeners. Precisamos de um para que possamos configurar o número de usuários para simular.

No JMeter, todos os elementos do nó são adicionados usando o menu de contexto.

  • Clique com o botão direito do mouse no elemento onde deseja adicionar um nó de elemento filho.

  • Escolha a opção apropriada para adicionar.

  • Clique com o botão direito em Sample Test (nosso plano de teste) → Add → Threads (Users) → Thread Group. Portanto, o Grupo de Threads é adicionado no nó Plano de Teste (Teste de Amostra).

  • Nomeie o Grupo de Threads como Usuários . Para nós, esse elemento significa que os usuários visitam a página inicial do TutorialsPoint.

Adicionar Sampler

Precisamos adicionar um Sampler em nosso Grupo de Threads (Usuários). Como feito anteriormente para adicionar o grupo de Threads, desta vez abriremos o menu de contexto do nó Thread Group (Usuários) clicando com o botão direito e adicionaremos HTTP Request Sampler escolhendo Adicionar → Sampler → opção de solicitação HTTP.

Ele adicionará um Sampler de solicitação HTTP vazio no nó Thread Group (Users). Vamos configurar este elemento de nó -

  • Name- Vamos mudar o nome para refletir a ação que queremos alcançar. Vamos chamá-lo deVisit TutorialsPoint Home Page

  • Server Name or IP- Aqui, temos que digitar o nome do servidor web. No nosso caso éwww.tutorialspoint.com. (http: // parte não está escrita, é apenas o nome do servidor ou seu IP)

  • Protocol - Manteremos em branco, o que significa que queremos HTTP como protocolo.

  • Path- Vamos digitar o caminho como / (barra). Isso significa que queremos a página raiz do servidor.

Adicionar ouvinte

Agora vamos adicionar um ouvinte. Vamos adicionar View Results Tree Listener no nó Thread Group (User). Isso garantirá que os resultados do Sampler estarão disponíveis para visualização neste elemento do nó Listener.

Para adicionar um ouvinte -

  • Abra o menu de contexto

  • Clique com o botão direito no Grupo de Threads (Usuários)

  • Escolha Adicionar → Listener → opção Exibir árvore de resultados

Execute o plano de teste

Agora com toda a configuração, vamos executar o plano de teste. Com a configuração do Thread Group (Usuários), mantemos todos os valores padrão. Isso significa que o JMeter executará o amostrador apenas uma vez. É semelhante a um único usuário, apenas uma vez.

Isso é semelhante a um usuário que visita uma página da web por meio do navegador, com o amostrador JMeter. Para executar o plano de teste, selecione Executar no menu e selecione a opção Iniciar.

O Apache JMeter nos pede para salvar o plano de teste em um arquivo de disco antes de realmente iniciar o teste. Isso é importante se você deseja executar o plano de teste várias vezes. Você pode optar por executá-lo sem salvar também.

Veja o resultado

Mantivemos a configuração do grupo de encadeamentos como encadeamento único (apenas um usuário) e loop por 1 vez (executado apenas uma vez), portanto, obteremos o resultado de uma única transação no View Result Tree Listener.

Os detalhes do resultado acima são -

  • A cor verde em comparação com o nome Visit TutorialsPoint Home Page indica sucesso.

  • O JMeter armazenou todos os cabeçalhos e as respostas enviadas pelo servidor web e está pronto para nos mostrar o resultado de várias maneiras.

  • A primeira guia é Resultados do Sampler. Ele mostra os dados do JMeter, bem como os dados retornados pelo servidor da web.

  • A segunda guia é Solicitação, que mostra todos os dados enviados ao servidor da web como parte da solicitação.

A última guia são os dados de resposta. Nesta guia, o ouvinte mostra os dados recebidos do servidor em formato de texto.

Este é apenas um plano de teste simples que executa apenas uma solicitação. Mas a verdadeira força do JMeter está em enviar a mesma solicitação, como se muitos usuários estivessem enviando. Para testar os servidores da web com vários usuários, precisamos alterar as configurações do Thread Group (Users).

Neste capítulo, veremos como criar um plano de teste simples para testar o servidor de banco de dados. Para o nosso propósito de teste, usamos o servidor de banco de dados MYSQL. Você pode usar qualquer outro banco de dados para teste. Para instalação e criação de tabelas em MYSQL, consulte o Tutorial MYSQL .

Assim que o MYSQL estiver instalado, siga as etapas abaixo para configurar o banco de dados -

  • Crie um banco de dados com o nome "tutorial".

  • Crie uma tabela tutorials_tbl .

  • Insira registros em tutorials_tbl como mostrado abaixo -

mysql> use TUTORIALS;
Database changed
mysql> INSERT INTO tutorials_tbl 
   ->(tutorial_title, tutorial_author, submission_date)
   ->VALUES
   ->("Learn PHP", "John Poul", NOW());
  
Query OK, 1 row affected (0.01 sec)
mysql> INSERT INTO tutorials_tbl
   ->(tutorial_title, tutorial_author, submission_date)
   ->VALUES
   ->("Learn MySQL", "Abdul S", NOW());
 
Query OK, 1 row affected (0.01 sec)
mysql> INSERT INTO tutorials_tbl
   ->(tutorial_title, tutorial_author, submission_date)
   ->VALUES
   ->("JAVA Tutorial", "Sanjay", '2007-05-06');

Query OK, 1 row affected (0.01 sec)
mysql>
  • Copie o driver JDBC apropriado para /home/manisha/apache-jmeter-2.9/lib.

Criar plano de teste JMeter

Vamos começar o JMeter a partir de /home/manisha/apache-jmeter-2.9/bin/jmeter.sh.

Adicionar usuários

Para criar um grupo Thread,

  • Clique com o botão direito em Plano de Teste.

  • Selecione Adicionar → Threads (Usuários) → Grupo de Threads.

  • Portanto, o grupo de encadeamentos é adicionado ao nó Plano de Teste.

  • Renomeie este Grupo de Threads como Usuários JDBC .

Não mudaremos as propriedades padrão do Grupo de Threads.

Adicionar solicitações JDBC

Agora que definimos nossos usuários, é hora de definir as tarefas que eles realizarão. Nesta seção, especifique as solicitações JDBC a serem executadas.

  • Clique com o botão direito do mouse no elemento Usuários JDBC.

  • Selecione Add → Config Element → JDBC Connection Configuration.

  • Configure os seguintes campos (estamos usando o banco de dados MySQL chamado tutorial) -

    • Nome da variável vinculada ao pool. Isso precisa identificar a configuração de maneira exclusiva. É usado pelo JDBC Sampler para identificar a configuração a ser usada. Nós o chamamos de teste .

    • URL do banco de dados - jdbc: mysql: // localhost: 3306 / tutorial.

    • Classe do driver JDBC: com.mysql.jdbc.Driver.

    • Nome de usuário: root.

    • Senha: senha para root.

Os outros campos na tela são deixados como padrões, conforme mostrado abaixo -

Agora adicione uma solicitação JDBC que se refere ao conjunto de configurações JDBC definido acima. Selecione o elemento Usuários JDBC.

  • Clique com o botão direito do mouse para obter o menu Adicionar

  • Selecione Add → Sampler → JDBC Request.

  • Selecione este novo elemento para visualizar seu Painel de Controle.

  • Edite as propriedades conforme mostrado abaixo -

    • Nome da variável vinculada ao pool. Isso precisa identificar exclusivamente a configuração. É usado pelo JDBC Sampler para identificar a configuração a ser usada. Nomeou como teste .

    • Nome - Aprenda.

    • Digite o nome do pool - teste (o mesmo que no elemento de configuração).

    • Tipo de consulta - Selecione a instrução.

    • Insira o campo Sequência de consulta SQL.

Criar Ouvinte

Agora adicione o elemento Listener. Este elemento é responsável por armazenar todos os resultados de suas solicitações JDBC em um arquivo e apresentar um modelo visual dos dados.

  • Selecione o elemento Usuários JDBC

  • Adicionar um ouvinte de Exibir Árvore de Resultados (Add → Listener → View Results Tree)

Salvar e executar plano de teste

Agora salve o plano de teste acima como db_test.jmx . Execute este plano de teste usandoRun → Start opção.

Verifique a saída

Na última imagem, você pode ver que dois registros estão selecionados.

Neste capítulo, veremos como testar um site FTP usando JMeter. Vamos criar um Plano de Teste para testar o site FTP.

Renomear plano de teste

  • Abra a janela JMeter clicando em /home/manisha/apache-jmeter-2.9/bin/jmeter.sh

  • Clique no nó Plano de Teste.

  • Renomeie este nó do plano de teste como TestFTPSite.

Adicionar Grupo de Tópicos

Adicione um Thread Group, que é o espaço reservado para todos os outros elementos, como Samplers, Controllers e Listeners.

  • Clique com o botão direito em TestFTPSite (nosso plano de teste)

  • Selecione Adicionar → Threads (Usuários) → Grupo de Threads. O Grupo de Threads será adicionado no nó do Plano de Teste (TestFTPSite).

  • Modifique as propriedades padrão do Thread Group para atender aos nossos testes da seguinte forma -

    • Name - FTPusers

    • Number of Threads (Users) - 4

    • Ramp-Up Period - deixe o valor padrão de 0 segundos.

    • Loop Count - 1

Adicionar Sampler - Solicitação de FTP

Agora que definimos nossos usuários, é hora de definir as tarefas que eles realizarão. Adicione elementos de solicitação de FTP. Adicionamos dois elementos de solicitação de FTP, um que recupera um arquivo e outro que coloca um arquivo no site de ftp.

  • Selecione o elemento de usuários FTP.

  • Clique com o botão direito do mouse para acessar o menu Adicionar

  • Selecione Adicionar → Sampler → Solicitação de FTP.

  • Selecione o elemento FTP Request na árvore.

  • Edite as seguintes propriedades conforme mostrado abaixo -

Os seguintes detalhes são inseridos neste elemento -

  • Name - Obter Solicitação de FTP

  • Server Name or IP - 184.168.74.29

  • Remote File - /home/manisha/sample_ftp.txt

  • Local File - sample_ftp.txt

  • Selecione obter (RETR)

  • Username - manisha

  • Password - manisha123

Agora adicione outra solicitação de FTP como acima e edite as propriedades conforme mostrado na imagem a seguir -

Os seguintes detalhes são inseridos neste elemento -

  • Name - Envio de solicitação de FTP

  • Server Name or IP - 184.168.74.29

  • Remote File - /home/manisha/examplefile.txt

  • Local File - /home/manisha/work/examplefile.txt

  • Selecione colocar (STOR)

  • Username - manisha

  • Password - manisha123

Adicionar ouvinte

O elemento final que você precisa adicionar ao seu plano de teste é um ouvinte. Este elemento é responsável por armazenar todos os resultados de suas solicitações de FTP em um arquivo e apresentar um modelo visual dos dados.

  • Selecione o elemento de usuários FTP.

  • Adicione um ouvinte da árvore de resultados de exibição selecionando Adicionar> Listener> Árvore de resultados de exibição.

Execute o plano de teste

Agora salve o plano de teste acima como ftpsite_test.jmx . Execute este plano de teste usandoRun → Start opção.

Veja o resultado

A seguinte saída pode ser vista no ouvinte.

Você pode ver que quatro solicitações são feitas para cada solicitação de FTP e o teste é bem-sucedido. O arquivo recuperado para a solicitação GET é armazenado na pasta / bin. No nosso caso, é/home/manisha/apache-jmeter-2.9/bin/. Para a solicitação PUT, o arquivo é carregado no caminho/home/manisha/.

Neste capítulo, aprenderemos como criar um Plano de Teste para testar um WebService. Para o nosso propósito de teste, criamos um projeto de serviço da web simples e o implementamos no servidor Tomcat localmente.

Criar projeto de serviço web

Para criar um projeto de serviço da Web, usamos o IDE Eclipse. Primeiro escreva a Interface do Terminal de ServiçoHelloWorld sob o pacote com.tutorialspoint.ws. O conteúdo do HelloWorld.java é o seguinte -

package com.tutorialspoint.ws;

import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.Style;

//Service Endpoint Interface
@WebService
@SOAPBinding(style = Style.RPC)

public interface HelloWorld {
   @WebMethod String getHelloWorldMessage(String string);
}

Este serviço tem um método getHelloWorldMessage que leva um parâmetro String.

Em seguida, crie a classe de implementação HelloWorldImpl.java sob o pacote com.tutorialspoint.ws.

package com.tutorialspoint.ws;

import javax.jws.WebService;

@WebService(endpointInterface="com.tutorialspoint.ws.HelloWorld")
public class HelloWorldImpl  implements HelloWorld  {
   @Override
   public String getHelloWorldMessage(String myName) {
      return("Hello "+myName+" to JAX WS world");
   }
}

Agora, vamos publicar esse serviço da web localmente, criando o editor do Endpoint e expondo o serviço no servidor.

O método de publicação leva dois parâmetros -

  • String do URL do endpoint.

  • Objeto implementador, neste caso a classe de implementação HelloWorld, que é exposta como um serviço da Web no terminal identificado pela URL mencionada no parâmetro acima.

O conteúdo de HelloWorldPublisher.java é o seguinte -

package com.tutorialspoint.endpoint;

import javax.xml.ws.Endpoint;
import com.tutorialspoint.ws.HelloWorldImpl;

public class HelloWorldPublisher {
   public static void main(String[] args) {
      Endpoint.publish("http://localhost:9000/ws/hello", new HelloWorldImpl());
   }
}

Modifique o conteúdo do web.xml conforme mostrado abaixo -

<?xml version = "1.0" encoding = "UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, 
   Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/j2ee/dtds/web-app_2_3.dtd">

<web-app>
   <listener>
      <listener-class>
         com.sun.xml.ws.transport.http.servlet.WSServletContextListener
      </listener-class>
   </listener>
	
   <servlet>
      <servlet-name>hello</servlet-name>
      <servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class>
      <load-on-startup>1</load-on-startup>
   </servlet>
	
   <servlet-mapping>
      <servlet-name>hello</servlet-name>
      <url-pattern>/hello</url-pattern>
   </servlet-mapping>
	
   <session-config>
      <session-timeout>120</session-timeout>
   </session-config>
	
</web-app>

Para implantar este aplicativo como um serviço da web, precisaríamos de outro arquivo de configuração sun-jaxws.xml. O conteúdo deste arquivo é o seguinte -

<?xml version = "1.0" encoding = "UTF-8"?>
<endpoints
   xmlns = "http://java.sun.com/xml/ns/jax-ws/ri/runtime"
   version = "2.0">
   
   <endpoint name = "HelloWorld" 
      implementation = "com.tutorialspoint.ws.HelloWorldImpl" 
      url-pattern = "/hello"/>
</endpoints>

Agora que todos os arquivos estão prontos, a estrutura do diretório deve ser semelhante à mostrada na imagem a seguir -

  • Agora crie um arquivo WAR deste aplicativo.

  • Escolha o projeto → clique com o botão direito → Exportar → arquivo WAR.

  • Salvar como hello.war arquivo sob o webapps pasta do servidor Tomcat.

  • Agora inicie o servidor Tomcat.

  • Assim que o servidor for iniciado, você deverá conseguir acessar o serviço da web com a URL - http: // localhost: 8080 / hello / hello

Criar plano de teste JMeter

Agora vamos criar um plano de teste para testar o serviço da web acima.

Renomear o plano de teste

  • Abra a janela JMeter clicando em /home/manisha/apache-jmeter2.9/bin/jmeter.sh.

  • Clique no nó Plano de Teste.

  • Renomeie este nó do plano de teste como WebserviceTest.

Adicionar Grupo de Tópicos

Adicione um Thread Group, que é o espaço reservado para todos os outros elementos, como Samplers, Controllers e Listeners.

  • Clique com o botão direito em WebserviceTest (nosso plano de teste) → Adicionar → Threads (usuários) → Grupo de threads. O Grupo de Threads será adicionado no nó do Plano de Teste (WebserviceTest).

  • A seguir, vamos modificar as propriedades padrão do Grupo de Threads para se adequar ao nosso teste. As seguintes propriedades são alteradas -

    • Name - usuário do webservice

    • Number of Threads (Users) - 2

    • Ramp-Up Period - deixe o valor padrão de 0 segundos.

    • Loop Count - 2

Adicionar Sampler - Solicitação SOAP / XML-RPC

Agora que definimos os usuários, é hora de definir as tarefas que eles executarão.

Vamos adicionar o elemento de solicitação SOAP / XML-RPC -

  • Clique com o botão direito do mouse para acessar o menu Adicionar.

  • Selecione Adicionar → Sampler → Solicitação SOAP / XML-RPC.

  • Selecione o elemento SOAP / XML-RPC Request na árvore

  • Edite as seguintes propriedades como na imagem abaixo -

  • Os seguintes detalhes são inseridos neste elemento -

    • Name − SOAP/XML-RPC Request

    • URL - http: // localhost: 8080 / hello / hello? Wsdl

    • Soap/XML-RPC Data - Insira o conteúdo abaixo

<soapenv:Envelope xmlns:soapenv = "http://schemas.xmlsoap.org/soap/envelope/" 
   xmlns:web = "http://ws.tutorialspoint.com/">
   <soapenv:Header/>
	
   <soapenv:Body>
      <web:getHelloWorldMessage>
         <arg0>Manisha</arg0>
      </web:getHelloWorldMessage>
   </soapenv:Body>
   
</soapenv:Envelope>

Adicionar ouvinte

O elemento final que você precisa adicionar ao seu plano de teste é um ouvinte. Este elemento é responsável por armazenar todos os resultados de suas solicitações HTTP em um arquivo e apresentar um modelo visual dos dados.

  • Selecione o elemento de usuário do serviço da web.

  • Adicione um ouvinte de Exibir árvore de resultados selecionando Adicionar → Listener → Exibir árvore de resultados.

Execute o plano de teste

Agora salve o plano de teste acima como test_webservice.jmx . Execute este plano de teste usando a opção Executar → Iniciar.

Veja o resultado

A seguinte saída pode ser vista no ouvinte.

Na última imagem, você pode ver a mensagem de resposta "Hello Manisha to JAX WS world".

Neste capítulo, aprenderemos como escrever um plano de teste simples para testar o Java Messaging Service (JMS). JMS suporta dois tipos de mensagens -

  • Point-to-Point messaging- O envio de mensagens em fila geralmente é usado para transações em que o remetente espera uma resposta. Os sistemas de mensagens são bastante diferentes das solicitações HTTP normais. Em HTTP, um único usuário envia uma solicitação e obtém uma resposta.

  • Topic messaging- Mensagens de tópico são comumente conhecidas como mensagens pub / sub. A mensagem de tópico geralmente é usada nos casos em que uma mensagem é publicada por um produtor e consumida por vários assinantes.

Vamos ver um exemplo de teste para cada um deles. Os pré-requisitos para testar JMS são -

  • Usamos Apache ActiveMQ no exemplo. Existem vários servidores JMS como IBM WebSphere MQ (anteriormente MQSeries), Tibco, etc. Baixe- o dos binários do site do Apache ActiveMQ.

  • Descompacte o arquivo, vá para o diretório descompactado e execute o seguinte comando no console de comando para iniciar o servidor ActiveMQ -

.\bin\activemq  start

Você pode verificar se o servidor ActiveMQ foi iniciado visitando a interface de administração no seguinte endereço http://localhost:8161/admin/. Se ele solicitar autenticação, digite o ID do usuário e a senha como admin . A tela é semelhante à mostrada abaixo -

  • Agora copie o activemq-all-xxxjar (XXX dependendo da versão) do diretório descompactado ActiveMQ para /home/manisha/apache-jmeter-2.9/lib.

Com a configuração acima, vamos construir o plano de teste para -

  • Plano de Teste Ponto a Ponto JMS

  • Plano de Teste de Tópico JMS

Neste capítulo, discutiremos como criar um plano de teste usando JMeter para monitorar servidores da web. Os usos dos testes de monitor são os seguintes -

  • Os monitores são úteis para testes de estresse e gerenciamento de sistema.

  • Usado com teste de estresse, o monitor fornece informações adicionais sobre o desempenho do servidor.

  • Os monitores tornam mais fácil ver a relação entre o desempenho do servidor e o tempo de resposta no lado do cliente.

  • Como uma ferramenta de administração do sistema, o monitor fornece uma maneira fácil de monitorar vários servidores a partir de um console.

Precisamos do Tomcat 5 ou superior para monitoramento. Para o nosso propósito de teste, monitoraremos o servidor Tomcat 7.0.42. Você pode testar qualquer contêiner de servlet que suporte Java Management Extension (JMX). Vamos escrever um caso de teste para monitorar o servidor Tomcat. Vamos primeiro configurar nosso servidor Tomcat.

Configurar servidor Tomcat

Começamos abrindo o status do serviço Tomcat. Para fazer isso, edite o arquivo de configuração para os usuários,<TOMCAT_HOME>/conf/tomcat-users.xml. Este arquivo contém uma seção de usuários do tomcat (comentada) como mostrado -

<tomcat-users>

<!--
   <role rolename = "tomcat"/>
   <role rolename = "role1"/>
   <user username = "tomcat" password = "tomcat" roles = "tomcat"/>
   <user username = "both" password = "tomcat" roles = "tomcat,role1"/>
   <user username = "role1" password = "tomcat" roles = "role1"/>
-->

</tomcat-users>

Precisamos mudar esta seção para adicionar as funções de administrador, gerente, manager-gui e atribuir o usuário "admin". O arquivo revisado é o seguinte -

<tomcat-users>

   <role rolename = "manager-gui"/>
   <role rolename = "manager-script"/>
   <role rolename = "manager-jmx"/>
   <role rolename = "manager-status"/>
   <user username = "admin" password = "admin" roles = "manager-gui,manager-script,manager-jmx,manager-status"/>

</tomcat-users>

Agora inicie o servidor tomcat <TOMCAT_HOME> /bin/startup.sh para Linux e <TOMCAT_HOME> /bin/startup.bat para Windows. Uma vez iniciado, verifique se a supervisão do Tomcat funciona inserindo o seguinte link em seu navegador -

http://localhost:8080/manager/status?XML=true

Uma janela de autenticação é exibida no navegador. Digite o login do tomcat e a senha associada (no nosso caso é admin). Em seguida, o navegador mostra o status de execução do Tomcat conforme abaixo -

Na captura de tela acima, podemos notar algumas coisas -

  • No URL, observe que XML = true (observe a distinção entre maiúsculas e minúsculas) permite uma exibição limpa do Tomcat de supervisão necessário para o funcionamento do JMeter.

  • Observe também que existem dois conectores padrão. O conector AJP usado em geral juntamente com o módulo frontal mod_jk Apache HTTPD e o conector HTTP que é comumente usado para acesso direto ao Tomcat via porta 8080.

Escreva o plano de teste JMeter

Vamos monitorar o servidor Tomcat escrevendo um plano de teste -

Renomear plano de teste

  • Abra a janela JMeter clicando em /home/manisha/apache-jmeter2.9/bin/jmeter.sh.

  • Clique no nó Plano de Teste.

  • Adicione um grupo de encadeamentos conforme explicado na próxima etapa.

Adicionar Grupo de Tópicos

  • Clique com o botão direito em Test Plan → Add → Threads(Users) → Thread Group. O Grupo de Threads será adicionado no nó do Plano de Teste.

  • Altere a contagem do loop para sempre (ou algum número grande) para que amostras suficientes sejam geradas.

Gerente de autorização HTTP

  • Adicione o HTTP Authorization Manager ao elemento Thread Group selecionando Adicionar → Elemento de configuração → HTTP Authorization Manager. Este elemento gerencia a autenticação solicitada pelo navegador para ver o status do servidor Tomcat.

  • Selecione o Gerenciador de autorização de HTTP.

  • Edite os seguintes detalhes -

    • Username - admin (dependendo da configuração no arquivo tomcat-users.xml)

    • Password - admin (dependendo da configuração no arquivo tomcatusers.xml)

    • Os outros campos ficam vazios.

Adicionar solicitação Sampler-HTTP

Agora que definimos nossos usuários, é hora de definir as tarefas que eles realizarão. Nós adicionamos o elemento HTTP Request.

  • Clique com o botão direito do mouse para acessar o menu Adicionar.

  • Selecione Adicionar → Amostrador → Solicitação HTTP.

  • Em seguida, selecione o elemento HTTP Request na árvore.

  • Edite as seguintes propriedades como na imagem abaixo -

  • Os seguintes detalhes são inseridos neste elemento -

    • Name - Status do servidor

    • Server Name or IP - localhost

    • Port - 8080

    • Path - / gerente / status

    • Parameters- Adicione um parâmetro de solicitação denominado "XML" em maiúsculas. Dê a ele o valor "verdadeiro" em letras minúsculas.

    • Optional Tasks - Marque "Usar como monitor" na parte inferior do amostrador.

Adicionar um temporizador constante

Para solicitar o status do servidor periodicamente, adicione um Temporizador Constante que permitirá um intervalo de tempo entre cada solicitação. Adicione um cronômetro a este grupo de discussão selecionando Adicionar → Cronômetro → Cronômetro constante.

Digite 5000 milissegundos na caixa Thread Delay . Em geral, o uso de intervalos menores que 5 segundos pode sobrecarregar o servidor. Descubra qual é o intervalo aceitável antes de implantar o monitor em seu ambiente de produção.

Adicionar ouvinte

O elemento final que você precisa adicionar ao seu plano de teste é um ouvinte. Adicionamos dois tipos de ouvintes. Um que armazena os resultados em um arquivo e o segundo que mostra a visualização gráfica dos resultados.

  • Selecione o elemento do grupo de rosca.

  • Adicionar um ouvinte do Gravador de dados simples Adicionar → Ouvinte → Gravador de dados simples.

  • Especifique um diretório e nome de arquivo do arquivo de saída (no nosso caso, é /home/manisha/work/sample.csv)

  • Vamos adicionar outro ouvinte selecionando o elemento do plano de teste Adicionar → Ouvinte → Resultados do Monitor.

Execute o plano de teste

Agora salve o plano de teste acima como monitor_test.jmx . Execute este plano de teste usando a opção Executar → Iniciar.

Veja o resultado

Os resultados serão salvos no arquivo /home/manisha/work/sample.csv. Você também pode ver um resultado gráfico no ouvinte de resultados do Monitor como na imagem abaixo.

Observe que o gráfico tem legendas em ambos os lados do gráfico. À esquerda está a porcentagem e à direita está morta / saudável. Se a linha de memória aumentar e diminuir rapidamente, isso pode indicar uma sobrecarga de memória. Nessas situações, é uma boa ideia criar o perfil do aplicativo com Borland OptimizeIt ou JProbe. O que você deseja ver é um padrão regular para carga, memória e threads. Qualquer comportamento errático geralmente indica baixo desempenho ou algum tipo de bug.

Ouvintes fornecem acesso às informações que o JMeter coleta sobre os casos de teste enquanto o JMeter é executado. Os resultados ou informações coletadas pelos ouvintes podem ser mostrados na forma de -

  • tree
  • tables
  • graphs
  • arquivo de log

Todos os ouvintes gravam os mesmos dados brutos no arquivo de saída quando um é especificado.

Configuração Padrão

Os itens padrão a serem salvos podem ser definidos de uma das seguintes maneiras -

  • No jmeter.properties(ou user.properties). Este arquivo está presente no/bin pasta do JMeter.Para alterar o formato padrão, encontre a seguinte linha em jmeter.properties -

jmeter.save.saveservice.output_format=
  • Usando o pop-up de configuração, conforme mostrado na imagem a seguir -

JMeter cria resultados de um teste executado como JMeter Text Logs (JTL). Normalmente, são chamados de arquivos JTL, pois essa é a extensão padrão - mas qualquer extensão pode ser usada.

Se vários testes forem executados usando o mesmo nome de arquivo de saída, o JMeter acrescentará automaticamente novos dados ao final do arquivo.

O ouvinte pode registrar os resultados em um arquivo, mas não na IU. Destina-se a fornecer um meio eficiente de registro de dados, eliminando a sobrecarga da GUI.

Ao correr em -

  • GUI mode - usar o ouvinte Simple Data Writer

  • non-GUI mode - o sinalizador -l pode ser usado para criar um arquivo de dados.

Os ouvintes podem usar muita memória se houver muitos samples. Para minimizar a quantidade de memória necessária, use a Gravação de Dados Simples com formato CSV.

Formato de registro CSV

O formato de registro CSV depende de quais itens de dados são selecionados na configuração. Apenas os itens de dados especificados são registrados no arquivo. A ordem de aparecimento das colunas é fixa e é a seguinte -

Campo Descrição Exemplo de valor
timeStamp em milissegundos desde 01/01/1970 1354223881017
decorrido em milissegundos 1858
rótulo etiqueta do amostrador Pedido HTTP
Código de resposta por exemplo, 200, 404 200
responseMessage por exemplo, OK Está bem
threadName Grupo de discussão 1-1
tipo de dados por exemplo, texto texto
sucesso verdadeiro ou falso verdadeiro
FailMessage caso existam
bytes número de bytes na amostra 34908
grpThreads número de tópicos ativos neste grupo de tópicos 1
Todos os tópicos número total de tópicos ativos em todos os grupos 1
URL http://tutorialspoint.com
Nome do arquivo se Salvar resposta para arquivo foi usado
latência tempo para a primeira resposta 132
codificação utf-8
SampleCount número de amostras (1, a menos que várias amostras sejam agregadas) 1
ErrorCount número de erros (0 ou 1, a menos que várias amostras sejam agregadas) 0
nome de anfitrião onde a amostra foi gerada LaptopManisha
Tempo ocioso número de milissegundos de tempo 'Inativo' (normalmente 0)
Variáveis se especificado

Salvando dados de resposta

Os dados de resposta podem ser salvos no arquivo de log XML, se necessário. No entanto, não permite salvar grandes arquivos e imagens. Nesses casos, use o Post-Processor Save_Responses_to_a_file. Isso gera um novo arquivo para cada amostra e salva o nome do arquivo com a amostra. O nome do arquivo pode então ser incluído na saída do log de amostra. Os dados serão recuperados do arquivo, se necessário, quando o arquivo de log de amostra for recarregado.

Carregando (lendo) dados de resposta

Para visualizar um arquivo de resultados existente, você pode usar o botão "Procurar ..." para selecionar um arquivo. Se necessário, apenas crie um plano de teste fictício com o Listener apropriado nele.

Salvando os dados da GUI do Listener

O JMeter é capaz de salvar qualquer ouvinte como um arquivo PNG. Para fazer isso,

  • Selecione o ouvinte no painel esquerdo, selecionando Editar → Salvar como imagem. Uma caixa de diálogo de arquivo é exibida.

  • Digite o nome desejado.

  • Salve o ouvinte.

Funções JMeter e variáveis ​​de usuário

As funções JMeter são valores especiais que podem preencher campos de qualquer Sampler ou outro elemento em uma árvore de teste.

  • Uma chamada de função se parece com isto -

${__functionName(var1,var2,var3)}
  • _functionName corresponde ao nome de uma função. Por exemplo${__threadNum}.

  • Se um parâmetro de função contém uma vírgula, certifique-se de escapar disso com "\" conforme mostrado abaixo -

${__time(EEE\, d MMM yyyy)}
  • Variáveis ​​são referenciadas como -

${VARIABLE}

Lista de funções

A tabela a seguir lista um grupo de funções agrupadas livremente em tipos -

Tipo de Função Nome Comente
Em formação threadNum Obtenha o número do tópico.
Em formação samplerName Obtenha o nome do amostrador (rótulo).
Em formação máquinaIP Obtenha o endereço IP da máquina local.
Em formação nome da maquina Obtenha o nome da máquina local.
Em formação Tempo Retorna a hora atual em vários formatos.
Em formação registro Registrar (ou exibir) uma mensagem (e retornar o valor).
Em formação logn Registrar (ou exibir) uma mensagem (valor de retorno vazio).
Entrada StringFromFile Leia uma linha de um arquivo.
Entrada FileToString Leia um arquivo inteiro.
Entrada CSVRead Leia o arquivo delimitado por CSV.
Entrada XPath Use uma expressão XPath para ler um arquivo.
Cálculo contador Gere um número crescente.
Cálculo intSum Adicione números internos.
Cálculo longSum Adicione números longos.
Cálculo Aleatória Gere um número aleatório.
Cálculo RandomString Gere uma string aleatória.
Cálculo UUID Gere um UUID tipo 4 aleatório.
Scripting BeanShell Execute um script BeanShell.
Scripting javaScript Processar JavaScript (Mozilla Rhino).
Scripting jexl, jexl2 Avalie uma expressão Commons Jexl.
Propriedades propriedade Leia uma propriedade.
Propriedades P Leia uma propriedade (método abreviado).
Propriedades setProperty Defina uma propriedade JMeter.
Variáveis Dividido Divida uma string em variáveis.
Variáveis V Avalie o nome de uma variável.
Variáveis avaliação Avalie uma expressão de variável.
Variáveis evalVar Avalie uma expressão armazenada em uma variável.
Corda regexFunction Analisa a resposta anterior usando uma expressão regular.
Corda escapeOroRegexpChars Cite meta chars usados ​​pela expressão regular ORO.
Corda Caracteres Gere valores de caracteres Unicode de uma lista de números.
Corda unescape Processar strings contendo escapes Java (por exemplo, \ n & \ t).
Corda unescapeHtml Decodifique strings codificadas em HTML.
Corda escapeHtml Codifique strings usando codificação HTML.
Corda TestPlanName Retorne o nome do plano de teste atual.
  • Existem dois tipos de funções -

    • Valores estáticos definidos pelo usuário (ou variáveis)

    • Funções integradas

  • Os valores estáticos definidos pelo usuário permitem que o usuário defina variáveis ​​a serem substituídas por seus valores estáticos quando uma árvore de teste é compilada e enviada para execução.

  • As variáveis ​​não podem ser aninhadas; ie${Var${N}} não funciona.

  • A função __V (variável) (versões posteriores a 2.2) pode ser usada para fazer isso - $ {__ V (Var $ {N})}.

  • Este tipo de substituição é possível sem funções, mas é menos conveniente e menos intuitivo.

Onde usar funções e variáveis

Funções e variáveis ​​podem ser escritas em qualquer campo de qualquer componente de teste.

As funções a seguir devem funcionar bem em um plano de teste -

  • intSum
  • longSum
  • machineName
  • BeanShell
  • javaScript
  • jexl
  • random
  • time
  • funções de propriedade
  • funções de registro

As funções que são usadas no Plano de Teste têm algumas restrições. As variáveis ​​de thread do JMeter não serão totalmente configuradas quando as funções forem processadas, portanto, os nomes das variáveis ​​passados ​​como parâmetros não serão configurados e as referências às variáveis ​​não funcionarão. Portanto, split () e regex () e as funções de avaliação de variáveis ​​não funcionarão. A função threadNum () não funcionará e não faz sentido no nível do plano de teste.

Variáveis ​​de referência e funções

  • Referenciar uma variável em um elemento de teste é feito colocando o nome da variável entre '$ {' e '}'.

  • As funções são referenciadas da mesma maneira, mas por convenção, os nomes das funções começam com "__" para evitar conflito com os nomes dos valores do usuário.

  • Algumas funções usam argumentos para configurá-los, e estes são colocados entre parênteses, delimitados por vírgulas. Se a função não aceitar argumentos, os parênteses podem ser omitidos. Por exemplo -

${__BeanShell(vars.put("name"\,"value"))}
  • Alternativamente, você pode definir seu script como uma variável, por exemplo, no Plano de Teste -

SCRIPT     vars.put("name","value")
  • O script pode ser referenciado da seguinte forma -

${__BeanShell(${SCRIPT})}

A caixa de diálogo do auxiliar de função

A caixa de diálogo do auxiliar de função está disponível no JMeter's Options aba.

  • Usando o auxiliar de função, você pode selecionar uma função no menu suspenso e atribuir valores para seus argumentos. A coluna esquerda da tabela fornece uma breve descrição do argumento, e a coluna direita é onde você escreve o valor para esse argumento. Funções diferentes usam argumentos diferentes.

  • Depois de fazer isso, clique no botão "Gerar" e a string apropriada é gerada, que você pode copiar e colar no plano de teste sempre que precisar.

Variáveis ​​Pré-definidas

Algumas variáveis ​​são definidas internamente pelo JMeter. Eles são -

  • COOKIE_cookiename - contém o valor do cookie.

  • JMeterThread.last_sample_ok - se a última amostra foi ou não OK - verdadeiro / falso. Observação - isso é atualizado depois que PostProcessors e Assertions foram executados.

  • Variáveis ​​de START.

Propriedades pré-definidas

Algumas propriedades integradas são definidas pelo JMeter. Eles estão listados abaixo. Por conveniência, as propriedades START também são copiadas para variáveis ​​com os mesmos nomes.

  • START.MS - hora de início do JMeter em milissegundos.

  • START.YMD - hora de início do JMeter como aaaaMMdd.

  • START.HMS - hora de início do JMeter como HHmmss.

  • TESTSTART.MS - hora de início do teste em milissegundos.

Observe que as variáveis ​​/ propriedades de INÍCIO representam o tempo de inicialização do JMeter, não o tempo de início do teste. Eles se destinam principalmente ao uso em nomes de arquivos, etc.

Expressões regulares são usadas para pesquisar e manipular texto, com base em padrões. O JMeter interpreta formas de expressões regulares ou padrões usados ​​em todo o plano de teste do JMeter, incluindo o software de correspondência de padrões Apache Jakarta ORO .

Com o uso de expressões regulares, certamente podemos economizar muito tempo e obter maior flexibilidade à medida que criamos ou aprimoramos um Plano de Teste. As expressões regulares fornecem um método simples para obter informações das páginas quando é impossível ou muito difícil prever um resultado.

Um exemplo de uso padrão do uso de expressões é obter um ID de sessão da resposta do servidor. Se o servidor retornar uma chave de sessão exclusiva, podemos obtê-la facilmente usando expressões em nosso script de carregamento.

Para usar expressões regulares em seu plano de teste, você precisa usar o Regular Expression Extractor do JMeter. Você pode colocar expressões regulares em qualquer componente em um Plano de Teste.

Vale ressaltar a diferença entre contains e matches, conforme usado no elemento de teste Response Assertion -

  • containssignifica que a expressão regular correspondeu a pelo menos alguma parte do destino, então 'alfabeto' "contém" 'ph.b.' porque a expressão regular corresponde à substring 'phabe'.

  • matchessignifica que a expressão regular correspondeu a todo o destino. Portanto, o 'alfabeto' é "combinado" por 'al. * T'.

Suponha que você queira corresponder à seguinte parte de uma página da web -

name = "file" value = "readme.txt"

E você deseja extrair readme.txt. Uma expressão regular adequada seria -

name = "file" value = "(.+?)">

Os caracteres especiais acima são -

  • ( e ) - eles incluem a parte da string de correspondência a ser retornada

  • . - corresponde a qualquer personagem

  • + - uma ou mais vezes

  • ? - pare quando a primeira partida for bem-sucedida

Criar plano de teste JMeter

Vamos entender o uso de expressões regulares no extrator de expressões regulares - um elemento pós-processador escrevendo um plano de teste. Este elemento extrai texto da página atual usando uma Expressão Regular para identificar o padrão de texto com o qual um elemento desejado está em conformidade.

Primeiro, escrevemos uma página HTML com uma lista de pessoas e seus IDs de e-mail. Nós o implantamos em nosso servidor Tomcat. O conteúdo de html (index.html) é o seguinte -

<html>
   <head>
   </head>
	
   <body>
      <table style = "border: 1px solid #000000;">
		
         <th style = "border: 1px solid #000000;">ID</th>
         <th style = "border: 1px solid #000000;">name</th>
         <th style = "border: 1px solid #000000;">Email</th>
			
         <tr>
            <td id = "ID" style = "border: 1px solid #000000;">3</td>
            <td id = "Name" style = "border: 1px solid #000000;">Manisha</td>
            <td id = "Email" style = "border: 1px solid #000000;">[email protected]</td>
         </tr>
			
         <tr>
            <td id = "ID" style = "border: 1px solid #000000;">4</td>
            <td id = "Name" style = "border: 1px solid #000000;">joe</td>
            <td id = "Email" style = "border: 1px solid #000000;">[email protected]</td>
         </tr>
			
      </table>
   </body>
</html>

Ao implantá-lo no servidor tomcat, esta página seria semelhante à mostrada na imagem a seguir -

Em nosso plano de teste, selecionaremos a pessoa na primeira linha da tabela de pessoas vista na página de lista de pessoas acima. Para capturar o ID dessa pessoa, vamos primeiro determinar o padrão onde encontraremos a pessoa na segunda linha.

Como pode ser visto no instantâneo a seguir, o ID da segunda pessoa é circundado por <td id = "ID"> e </ td>, e é a segunda linha de dados com este padrão. Podemos usar isso para corresponder ao padrão exato do qual queremos extrair informações. Como queremos extrair duas informações desta página, o ID da pessoa e o nome da pessoa, os campos são definidos da seguinte forma -

Inicie o JMeter, adicione um grupo de threads Test Plan → Add→ Threads(Users)→ Thread Group.

Em seguida, adicione uma solicitação HTTP de amostrador, selecione o plano de teste, clique com o botão direito Add → Sampler → HTTP Request e insira os detalhes conforme mostrado abaixo -

  • Name - Gerenciar

  • Server Name or IP - localhost

  • Port Number - 8080

  • Protocol - Manteremos em branco, o que significa que queremos HTTP como protocolo.

  • Path - jmeter / index.html

Em seguida, adicione um extrator de expressão regular. Selecione o HTTP Request Sampler (Manage), clique com o botão direitoAdd → Post Processor → Regular Expression Extractor.

A tabela a seguir fornece uma descrição dos campos usados ​​na captura de tela acima -

Sr. Não Campo e Descrição
1

Reference Name

O nome da variável na qual o teste extraído será armazenado (refname).

2

Regular Expression

O padrão com o qual o texto a ser extraído será correspondido. Os grupos de texto que serão extraídos são delimitados pelos caracteres '(' e ')'. Usamos '. +?' para indicar uma única instância do texto entre as marcas <td ..> .. </td>. Em nosso exemplo, a expressão é - <td id = "ID"> (+?) </td> \ s * <td id = "Name"> (+?) </td> \ s *

3

Template

Cada grupo de texto extraído colocado como membro da variável Pessoa, seguindo a ordem de cada grupo de padrão delimitado por '(' e ')'. Cada grupo é armazenado como refname_g #, onde refname é a string que você inseriu como o nome de referência e # é o número do grupo. $ 1 $ a refere-se ao grupo 1, $ 2 $ a refere-se ao grupo 2, etc. $ 0 $ refere-se a tudo o que a expressão inteira corresponde. Neste exemplo, o ID que extraímos é mantido em Person_g1, enquanto o valor de Name é armazenado em Person_g2.

4

Match No.

Como planejamos extrair apenas a segunda ocorrência desse padrão, correspondendo ao segundo voluntário, usamos o valor 2. O valor 0 faria uma correspondência aleatória, enquanto um valor negativo precisa ser usado com o Controlador ForEach.

5

Default

Se o item não for encontrado, este será o valor padrão. Este é um campo opcional. Você pode deixar em branco.

Adicione um ouvinte para capturar o resultado deste Plano de Teste. Clique com o botão direito do mouse no Grupo de Threads e selecione a opção Adicionar → Listener → Exibir Árvore de Resultados para adicionar o listener.

Salve o plano de teste como reg_express_test.jmx e execute o teste. A saída seria um sucesso, conforme mostrado na imagem a seguir -

O JMeter tem algumas limitações, especialmente quando é executado em um ambiente distribuído. Seguir essas diretrizes ajudará na criação de uma carga real e contínua -

  • Use várias instâncias do JMeter no caso, o número de threads é maior.

  • Verifique as regras do escopo e projete de acordo.

  • Use sempre convenções de nomenclatura para todos os elementos.

  • Verifique as configurações padrão de conectividade do navegador antes de executar scripts.

  • Adicione ouvintes de forma adequada.

  • Aqui estão algumas sugestões para reduzir os requisitos de recursos -

    • Use o modo não-GUI: jmeter -n -t test.jmx -l test.jtl.

    • Use o mínimo de ouvintes possível; se estiver usando o sinalizador -l como acima, todos eles podem ser excluídos ou desabilitados.

    • Desative o listener “View Result Tree”, pois ele consome muita memória e pode resultar no congelamento do console ou no JMeter ficar sem memória. É, entretanto, seguro usar o ouvinte “Exibir árvore de resultados” com apenas “Erros” marcados.

    • Em vez de usar muitos amostradores semelhantes, use o mesmo amostrador em um loop e use variáveis ​​(Conjunto de dados CSV) para variar a amostra. Ou talvez use o Access Log Sampler.

    • Não use o modo funcional.

    • Use a saída CSV em vez de XML.

    • Salve apenas os dados de que você precisa.

    • Use o mínimo de afirmações possível.

    • Desative todos os gráficos JMeter, pois eles consomem muita memória. Você pode visualizar todos os gráficos em tempo real usando a guia JTLs em sua interface da web.

    • Não se esqueça de apagar o caminho local do CSV Data Set Config, se usado.

    • Limpe a guia Arquivos antes de cada execução de teste.