O que são temporizadores?
Por padrão, o JMeter envia a solicitação sem pausar entre cada solicitação. Nesse caso, o JMeter pode sobrecarregar seu servidor de teste, fazendo muitas solicitações em um curto espaço de tempo.
Vamos imaginar que você envie milhares de solicitações a um servidor da web em teste em poucos segundos. Isto é o que acontece!
Os temporizadores permitem que o JMeter atrase cada solicitação feita por um encadeamento. Um cronômetro pode resolver o problema de sobrecarga do servidor .
Além disso, na vida real, os visitantes não chegam a um site todos ao mesmo tempo, mas em intervalos de tempo diferentes. Portanto, o Timer ajudará a imitar o comportamento em tempo real.
Neste tutorial, você aprenderá
- Temporizador Constante
- Gaussian Random Timer
- Temporizador Aleatório Uniforme
- BeanShell Timer
- BSF Timer
- JSR223 Timer
- Como usar o temporizador constante
A seguir estão alguns tipos comuns de um cronômetro no JMeter
Temporizador constante:
O temporizador constante atrasa cada solicitação do usuário pelo mesmo período de tempo.
Gaussian Random Timer:
O cronômetro aleatório gaussiano atrasa cada solicitação do usuário por um período de tempo aleatório .
Parâmetros:
Atributo | Descrição |
---|---|
Nome | Nome descritivo para este cronômetro que é mostrado na árvore |
Desvios (milissegundos) | Um parâmetro da Função de Distribuição Gaussiana |
Compensação de atraso constante (milissegundos) | Valor adicional em milissegundos |
Portanto, o atraso total é descrito como a figura abaixo:
Temporizador aleatório uniforme:
O temporizador aleatório uniforme atrasa cada solicitação do usuário por um período de tempo aleatório.
Parâmetros:
Atributo |
Descrição |
---|---|
Nome |
Nome descritivo para este cronômetro que é mostrado na árvore |
Máximo de atraso aleatório |
Número máximo aleatório de milissegundos para atrasar. |
Compensação de atraso constante (milissegundos) |
Valor adicional em milissegundos |
O atraso total é a soma do valor aleatório e o valor de deslocamento.
BeanShell Timer
O BeanShell Timer pode ser usado para gerar um tempo de atraso entre cada solicitação do usuário.
BSF Timer
O BSF Timer pode ser usado para gerar um atraso entre cada solicitação do usuário usando uma linguagem de script BSF.
JSR223 Timer
O Timer JSR223 pode ser usado para gerar um atraso entre cada solicitação do usuário usando uma linguagem de script JSR223
Como usar o temporizador constante
Neste exemplo, você usará o Temporizador constante para definir um atraso fixo entre as solicitações do usuário para google.com.
Vamos começar com um script de teste simples
- JMeter cria uma solicitação de usuário para http://www.google.com 100 vezes
- O atraso entre cada solicitação do usuário é de 5000 ms
Aqui está o roteiro para este exemplo prático:
Condição prévia:
Nós re-utilizar o Etapas 1 e 2 em tutorial JMeter Teste de Desempenho.
Etapa 1) 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
No painel de controle Thread Group, insira Thread Properties como a seguir
Esta configuração permite que o JMeter crie uma solicitação de usuário para http://www.google.com em 100 vezes
Etapa 2) Adicionar elementos JMeter
- Adicionar padrão de solicitação HTTP
- Adicionar solicitação HTTP
Etapa 3) Adicionar temporizador constante
Clique com o botão direito em Thread Group -> Timer -> Constant Timer
Configurando Thread Delay de 5000 milissegundos
Etapa 4) Adicionar Ver Resultados na Tabela
Exibir resultados na tabela exibe o resultado do teste em formato de tabela.
Clique com o botão direito em Adicionar -> Ouvinte -> Exibir Resultado na Tabela
Exibir resultados na tabela exibe a figura abaixo
Etapa 5) Execute seu teste
Quando estiver pronto para executar um teste, clique no botão Executar na barra de menu ou na tecla de atalho Ctrl + R
Este é o resultado deste teste
Por exemplo, na figura acima, vamos analisar a Amostra 2
- O horário de início é 22: 05: 01.866
- O tempo de amostra da amostra 2 é 172 ms
- Temporizador constante : 5000 ms (conforme configurado)
- A hora de término desta amostra é = 22: 05: 01.866 + 172 + 5000 = 22: 05: 07.038
Portanto, a Amostra 3 deve começar no horário 22: 05: 07.039 (conforme mostrado na figura acima)
O atraso de cada amostra é de 5000 ms
Se você alterar o temporizador constante para zero , você verá que o resultado é alterado
Vamos analisar a Amostra 1
- O horário de início é 22: 17: 39.141
- O tempo de amostra da amostra 2 é 370 ms
- Temporizador constante : 0 ms (conforme configurado)
- A hora de término desta amostra é = 22: 17: 39,141+ 370 + 0 = 22: 17: 39,511
Portanto, a Amostra 2 deve começar no momento em que é 22: 17: 39.512 (mostrado na figura acima)
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 TimerTestPlan.jmx no Jmeter
- Clique duas vezes no Grupo de Tópicos -> Ver Resultado na Tabela
- Execute o teste