A Magia da Precisão através do Timer de Trafego
Tabela de conteúdos
intermediário - This article is part of a series.
Neste entr'a, exploramos o uso de um cronômetro que é caracterizado por enviar transações em uma maneira muito semelhante à como os usuários reais interagiriam com um aplicativo. Começamos analisando as tipos de cronômetros disponíveis no JMeter.
Categorias de Timers #
JMeter oferece duas categorias de timers. Uma dessas é principalmente usada para inserir pausas (chamadas Think Time em inglês) entre requisições para simular a comportamento humano. Esta categoria inclui o Timer Constante, o Timer Uniformemente Aleatório, o Timer Gausiano e outros.
A segunda categoria consiste em timers que regularizam a taxa de chegada das Threads (sessões), ou seja, configura o throughput desejado. Esta razão de chegada é determinada pelo intervalo de execução entre as threads (Vusers), que na Inglesa se refere como pacing. Dentro desta categoria estão os Timer Constant Throughput e o Precise Throughput Timer.
NOTA: veja minhas entradas no meu blog sobre o ritmo pacing-1 e pacing-2 em relação a outro método para controlar a taxa de chegada.
Carregamento vs. Concorrência Estes dois conceitos são essenciais para compreender a diferença na utilização de tipos de temporizadores.
Carregamento | Concorrência |
---|---|
Determinado pela Paceando | Determinado pela Tempo de Pensar |
Intervalo entre sessões do usuário | Intervalo entre pedidos dentro da sessão |
Tempo Preciso de Tráfego (PTT) #
Como mencionado anteriormente, o Tempo Preciso de Tráfego (PTT) e o Tempo Constante de Tráfego (CTT) são projetados para regularmente agendar a chegada de threads (Vusers). A principal diferença entre esses dois timers é que o CTT inclui um intervalo constante enquanto o PTT inclui um intervalo aleatório. Este intervalo aleatório modela uma distribuição Poisson, que como foi demonstrado, é como os usuários interagem com um aplicativo.
Configuração do PTT #
A configuração tem duas partes. A primeira parte envolve a localização do elemento no plano de teste. O cronômetro deve ser incluído na primeira linha abaixo da Grupos de Threads acima de uma ação em Test Action (referência à imagem abaixo).
A segunda dimensão é o configuração do cronômetro, que se baseia em um conceito simples: definir o objetivo de throughput desejado.
No exemplo, o throughput desejado (TXN/sec) é conforme abaixo:
Target Throughput (samples x "Throughput period") / Throughput period (secs)
600 TXN / 60 Segundos = 10 TXN por Segundo
Adicionalmente, é necessário atribuir a duração do teste: Duração do Teste em segundos.
Com estes parâmetros, o PTT cria (em memória/RAM) um esquema de deslocamento para como as threads serão instanciadas durante o teste.
Considerações #
- Use a normal Thread Group.
- Configure the Threads (Users) group with the necessary number of threads/vusers.
- Configure the Threads (Users) group with an Ramp-up and Startup delay equal to zero.
- Configure the Threads (Users) group with an infinite loop count.
- Configure the Threads (Users) group with the same duration (Test duration, mentioned previously).
- Do not use variables in the configuration.
NOTA: Consideração 2 é extremamente importante porque sem uma quantidade adequada de linhas de thread, o teste não consegue atingir a taxa desejada de throughput. Sugere-se observar o registro de erros.
Conclusão #
O cronômetro PTT oferece um recurso para criar uma avaliação que caracteriza por enviar transações de maneira muito semelhante à como usuários reais usam um aplicativo.