Controladores em JMeter: Loop, Simples, Transação, Módulo, Aleatório

O que é o Controlador Lógico?

Os Controladores Lógicos permitem definir a ordem de processamento da solicitação em um Thread. Ele permite controlar “quando” enviar uma solicitação de usuário a um servidor web. Por exemplo, você pode usar controladores aleatórios para enviar solicitações HTTP ao servidor aleatoriamente

Os controladores lógicos determinam a ordem em que a solicitação do usuário é executada.

Alguns controladores lógicos comumente usados ​​estão abaixo:

O controlador lógico

Controlador de Gravação

JMeter pode registro os Ensaios passos; um controlador de gravação é um espaço reservado para armazenar essas etapas de gravação.

Controlador de Gravação

Controlador simples

Controlador Simples é apenas um recipiente para solicitação do usuário.

Controlador simples

Controlador de loop

Loop Controller faz a solicitação do usuário ser executada um determinado número de vezes ou correr para sempre como mostrado na figura:

Controlador de loop

Controlador Aleatório

Random Controller faz com que todas as solicitações do usuário sejam executadas em o aleatório ordem em cada período do loop.

Por exemplo, você tem três solicitações de usuário para o site http://www.google.com na seguinte ordem:

  1. Solicitação HTTP
  2. Solicitação de FTP
  3. solicitação JDBC

Essas 3 solicitações devem ser executadas 5 vezes. Um total de 15 solicitações de usuários serão enviadas ao servidor do Google por JMeter.

In seqüente ordem, solicitações são enviadas sequencialmente na seguinte ordem:

Solicitação HTTP -> Solicitação FTP-> Solicitação JDBC

para cada ciclo.

Controlador Aleatório

In acaso ordem, as solicitações são enviadas como aleatoriamente,

Solicitação FTP -> solicitação HTTP-> solicitação JDBC

Or

Solicitação JDBC -> Solicitação FTP-> Solicitação HTTP

Para cada ciclo.

Controlador de módulo

O objetivo do Module Controller é adicionar modularidade ao JMeter.

A ideia geral é que as aplicações web consistem em pequenas unidades de funcionalidade (ou seja, Logon, Criar Conta, Logoff…). Esta funcionalidade pode ser armazenada em Controlador simples como “módulos”. O Controlador de Módulo escolherá qual módulo precisa ser executado.

Controlador de módulo

Considere o seguinte cenário -

Você deseja simular:

  • usuários 50 Sair,
  • usuários 100 fazendo login
  • usuários 30 search www.google.com

Você pode usar JMeter para criar 3 módulos. Cada módulo simula cada atividade do usuário: Login, Logout e Pesquisa.

Controlador de módulo

O controlador do módulo escolhe qual módulo precisa ser executado.

Controlador de módulo

Outros controladores importantes

  • Intercalar Controlador: pega e faz um da solicitação do usuário executada em cada laço do fio.
  • Runtime Controlador: controles quão mais seus filhos podem correr.

Por exemplo, se você especificou Runtime Controller 10 segundos, JMeter executará seu teste por 10 segundos.

Outros controladores importantes

  • transação Controlador: mede o tempo geral levado para acabamento uma execução de teste
  • Incluir Controlador: é projetado para usar um plano de teste externo. Este controlador permite que você use vários planos de teste em JMeter. Veja detalhes em JMeter Teste de Desempenho.

Exemplo de controlador de loop

Esta seção mostra instruções passo a passo para adicionar Controlador de loop definido para seu plano de teste de desempenho atual.

O Loop Controller faz com que os samplers sejam executados um certo número de vezes, além do valor do loop que você especificou para o Thread Group. Por exemplo, se você

  • Adicione uma solicitação HTTP a um controlador de loop com uma contagem de loops de 50
  • Configure a contagem de loops do grupo de threads para 2
  • Em seguida, JMeter enviará um total de 50 * 2 = 100 solicitações HTTP.

Este é o roadmap deste exemplo:

Exemplo de controlador de loop

Etapa 1) Configurando o grupo de threads

We reuso a Etapa 1, 2 do tutorial JMeter Teste de Desempenho.

  1. Adicionar grupo de threads

Botão direito do mouse sobre a Plano de teste e adicione um novo grupo de threads: Adicionar-> Tópicos (Usuários) ->Grupo de Tópicos

Mas no painel de controle do Thread Group, insira Thread Properties da seguinte forma:

Adicionar grupo de threads

Vai fazer um solicitação do usuário ao servidor da web google.com e execute-o 2 vezes.

  1. Adicionar JMeter elementos

Adicione o padrão de solicitação HTTP a www.google.com.

  1. Adicionando Controlador de Loop

Clique com o botão direito em Grupo de Threads -> Controlador Lógico -> Controlador de Loop

Adicionando Controlador de Loop

Etapa 2) Configurando o Controlador de Loop

Adicione o valor 50 ao campo Loop Count conforme a figura abaixo. Isso fará um solicitação do usuário ao servidor web google.com executá-lo 50 vezes, além do valor do loop =2, que você especificou para o grupo de threads acima. JMeter enviaremos um total de 2 * 50 = 100 Solicitações HTTP.

Configurando o Controlador de Loop

Clique com o botão direito em Loop Controller, Adicionar -> Sampler -> Solicitação HTTP

Configurando o Controlador de Loop

Etapa 3) Adicionar resultados de visualização na tabela

Reutilizamos a Etapa 2 em Cronômetro para adicionar Visualizar resultados na tabela

Portanto, o plano de teste é mostrado na figura abaixo

Adicionar resultados de visualização na tabela

Etapa 4) Execute seu teste

Agora retorne Ver resultados na tabela, clique no botão Iniciar na barra de menu (Ctrl+R) para executar um teste

Como mostrado na figura abaixo, JMeter Simula uma solicitação do usuário, que é enviado 100 vezes para o servidor web http://www.google.com/. O teste é interrompido após uma solicitação do usuário ser enviada 100 vezes.

Execute o teste

guia de solução de problemas

  1. Se você enfrentar o problema ao executar o cenário acima… faça o seguinte
  2. Verifique se você está se conectando à Internet por meio de um proxy. Se sim, remova o proxy.
  3. Abra uma nova instância do Jmeter
  4. Abra o ControllerTestPlan.jmx em Jmeter
  5. Clique em Grupo de Threads -> Ver Resultado na Tabela
  6. Execute o teste