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:
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 simples
Controlador Simples é apenas um recipiente para solicitação do usuário.
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 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:
- Solicitação HTTP
- Solicitação 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 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.
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.
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.
O controlador do módulo escolhe qual módulo precisa ser executado.
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.
- 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:
Etapa 1) Configurando o grupo de threads
We reuso a Etapa 1, 2 do tutorial JMeter Teste de Desempenho.
-
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:
Vai fazer um solicitação do usuário ao servidor da web google.com e execute-o 2 vezes.
-
Adicionar JMeter elementos
Adicione o padrão de solicitação HTTP a www.google.com.
-
Adicionando Controlador de Loop
Clique com o botão direito em Grupo de Threads -> Controlador Lógico -> 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.
Clique com o botão direito em Loop Controller, Adicionar -> Sampler -> Solicitação HTTP
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
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.
guia de 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 do Jmeter
- Abra o ControllerTestPlan.jmx em Jmeter
- Clique em Grupo de Threads -> Ver Resultado na Tabela
- Execute o teste