O que é o controlador lógico?
Os controladores lógicos permitem definir a ordem de processamento da solicitação em um thread. Ele permite que você controle "quando" enviar uma solicitação do usuário a um servidor da 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:
Controlador de gravação:
JMeter pode registrar suas etapas de teste; um controlador de gravação é um espaço reservado para armazenar essas etapas de gravação.
Controlador Simples:
O Simple Controller é apenas um contêiner para a solicitação do usuário.
Controlador de loop:
O Loop Controller faz com que a solicitação do usuário seja executada um número especificado de vezes ou para sempre, conforme mostrado na figura:
Controlador Aleatório:
O Random Controller faz com que todas as solicitações do usuário sejam executadas em ordem aleatória em cada período de loop.
Por exemplo, você tem 3 solicitações de usuário para o site http://www.google.com na seguinte ordem:
- Solicitação HTTP
- Pedido de FTP
- 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 pelo JMeter.
Em ordem sequencial , as solicitações são enviadas sequencialmente na seguinte ordem:
Solicitação HTTP -> Solicitação FTP-> Solicitação JDBC
para cada loop.
Em ordem aleatória , as solicitações são enviadas aleatoriamente,
Solicitação de FTP -> solicitação de HTTP-> solicitação de JDBC
Ou
Solicitação JDBC -> Solicitação FTP-> Solicitação HTTP
Para cada loop.
Controlador de Módulo:
O objetivo do Module Controller é adicionar modularidade ao JMeter.
A ideia geral é que os aplicativos da web consistem em pequenas unidades de funcionalidade (ou seja, logon, criar conta, logoff ...). Esta funcionalidade pode ser armazenada no Simple Controller como "módulos". O controlador de módulo escolherá qual módulo precisa ser executado.
Considere o seguinte cenário -
Você deseja simular:
- 50 usuários se desconectando ,
- 100 usuários fazendo login
- 30 usuários pesquisam www.google.com
Você pode usar o JMeter para criar 3 módulos. Cada módulo simula cada atividade do usuário: Login, Logout e Pesquisa.
O controlador do módulo escolhe qual módulo precisa ser executado.
Outros controladores importantes:
- Interleave Controller: seleciona e faz com que uma das solicitações do usuário seja executada em cada loop da thread.
- Controlador de tempo de execução : controla por quanto tempo seus filhos podem rodar.
Por exemplo, se você especificou Runtime Controller 10 segundos, o JMeter executará seu teste por 10 segundos.
- Controlador de transação : mede o tempo total necessário para concluir a execução de um teste
- Incluir controlador: é projetado para usar um plano de teste externo. Este controlador permite que você use vários planos de teste no JMeter. Veja os detalhes em Teste de desempenho JMeter.
Exemplo de controlador de loop
Esta seção mostra instruções passo a passo para adicionar o conjunto de controladores de loop ao seu plano de teste de desempenho atual.
O Loop Controller faz os samplers rodarem 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 loop 50
- Configure a contagem de loop do Grupo de Threads para 2
- Em seguida, o JMeter enviará um total de 50 * 2 = 100 Solicitações HTTP.
Este é o roteiro deste exemplo:
Etapa 1) Configurando o Grupo de Threads
Nós re-utilizar a Etapa 1, 2 em tutorial JMeter Teste de Desempenho.
-
Adicionar Grupo de Tópicos
Clique com o botão direito no Plano de Teste e adicione um novo grupo de threads: Adicionar -> Threads (Usuários) -> Grupo de Threads
Mas no painel de controle Thread Group, insira Thread Properties da seguinte maneira:
Ele fará uma solicitação de usuário ao servidor da web google.com e o executará 2 vezes.
-
Adicionar elementos JMeter
Adicione o padrão de solicitação HTTP a www.google.com.
-
Adicionando Controlador de Loop
Clique com o botão direito do mouse em Thread Group -> Logic Controller -> Loop Controller
Etapa 2) Configurando o controlador de loop
Adicione o valor 50 ao campo Loop Count conforme a figura abaixo. Ele fará uma solicitação de usuário ao servidor da web google.com executá-lo 50 vezes, além do valor de loop = 2, que você especificou para o grupo de threads acima. Portanto, o JMeter enviará um total de 2 * 50 = 100 solicitações HTTP.
Clique com o botão direito em Loop Controller, Add -> Sampler -> HTTP request
Etapa 3) Adicionar Ver Resultados na Tabela
Reutilizamos a Etapa 2 no cronômetro para adicionar resultados de visualização na tabela
Portanto, o plano de teste é mostrado na figura abaixo
Etapa 4) Execute seu teste
Agora retorne Exibir resultados na tabela, clique no botão Iniciar na barra de menus (Ctrl + R) para executar um teste
Conforme mostrado na figura abaixo, o JMeter simula uma solicitação do usuário, que é enviada 100 vezes, para o servidor da web http://www.google.com/. O teste é interrompido depois que uma solicitação do usuário é enviada 100 vezes.
Solução de problemas:
- Se você enfrentar o problema ao executar o cenário acima ... faça o seguinte
- Verifique se você está se conectando à Internet por meio de um proxy. Se sim, remova o proxy.
- Abra uma nova instância de Jmeter
- Abra o ControllerTestPlan.jmx no Jmeter
- Clique em Thread Group -> View Result in Table
- Execute o teste