Teste de Carga: Tempo de Pensamento, Ritmo e Atrasos



O que é Think Time em Teste de Performance?

Think time em testes de carga refere-se ao atraso simulado ou pausa entre ações consecutivas do usuário durante um teste de performance. Ele representa o tempo que um usuário passa pensando, lendo ou estando inativo de outra forma após completar uma ação e antes de iniciar a próxima. O think time é introduzido nos cenários de teste para torná-los mais realistas e imitar o comportamento natural dos usuários reais interagindo com a aplicação.

Por exemplo, considere um cenário em um aplicativo web de e-commerce onde um usuário seleciona um produto. Em seguida, ele navega para a página de exibição do produto e leva algum tempo para consumir e ler o conteúdo dessa página antes de clicar no botão “Adicionar ao Carrinho”. A duração entre clicar no produto e clicar em “Adicionar ao Carrinho” é chamada de think time.

Quando as pessoas pensam em teste de carga, muitas vezes imaginam grandes números de usuários bombardeando um site ou API simultaneamente. Embora isso faça parte da história, o think time é igualmente importante. Ele ajuda a simular jornadas reais de usuário como navegar por produtos, fazer login em contas ou concluir compras. Cada ação tem sua pausa natural, e incluir isso nos seus testes garante que sua aplicação esteja preparada para o comportamento real dos usuários.

Vantagens do Think Time

  • Realismo: Incluir think time replica o comportamento natural dos usuários que não interagem continuamente com o sistema. Isso aprimora o realismo dos cenários de teste de carga, tornando-os mais reflexivos das experiências reais dos usuários.
  • Precisão na Simulação do Usuário: O think time ajuda a simular com precisão o comportamento do usuário durante o processo de teste. Usuários normalmente gastam tempo lendo conteúdo, tomando decisões ou refletindo sobre ações, e o think time permite simular essas pausas naturais.
  • Performance: O Think Time libera recursos na máquina do Servidor de Execução entre as requisições. Isso permite que outros Usuários Virtuais (UVs) no Servidor de Execução enviem suas requisições, prevenindo que a máquina do Servidor de Execução enfrente limitações de I/O.
  • Melhoria na Solução de Problemas: Cenários realistas com think time ajudam a detectar gargalos de performance que podem não ser aparentes em cenários sem pausas. Isso auxilia a revelar problemas relacionados a sessões de usuário, gerenciamento de sessão e a capacidade de resposta geral do sistema.

Quando Usar Think Times

Incorporar think times no seu teste de carga pode ser difícil porque cada usuário é diferente. No lado positivo, think times podem ser flexíveis e você precisa considerar uma faixa para seus valores de think time. Por exemplo, alguns usuários podem levar mais tempo para ler ou preencher um formulário do que outros.

Você vai querer incorporar think time entre essas ações para replicar com mais precisão o tempo entre o recebimento de uma resposta do servidor e a solicitação de uma nova página pelo usuário. Seu think time vai depender dos seus cenários de usuário, e você deve determinar os intervalos de valores de think time usando dados do seu site ou aplicativo. É importante determinar o tempo mediano que os usuários passam em suas páginas.

 

O que é Pacing em Teste de Performance?

Pacing é usado em testes de carga para garantir que o teste seja conduzido na taxa desejada de transações por segundo. É o intervalo de tempo entre cada iteração completa do fluxo de negócios. Isso ajuda a regular o número de requisições enviadas ao servidor por segundo.

 

A Importância de Introduzir Atrasos em Testes de Carga

Testar a performance da aplicação antes do seu lançamento amplo ajuda a prevenir inconveniências para os usuários finais, como timeouts, respostas lentas das páginas e quedas do sistema. Para garantir resultados realistas e identificar quaisquer problemas, incorporar think time e pacing no design do cenário de teste é essencial.

Por exemplo, quando introduzimos think time entre cada ação concorrente do usuário, o servidor utiliza esse atraso para resolver tarefas pendentes na fila. Ele executa a próxima tarefa antes de revisitar a anterior. Isso reflete de perto o cenário típico de produção com usuários reais. Além disso, incluir think time aumenta o tempo que o usuário passa na aplicação, revelando problemas relacionados à capacidade do servidor de lidar efetivamente com usuários concorrentes.

Calculando Atrasos para Testes de Aplicações

O número de usuários virtuais concorrentes, atrasos e transações por segundo (TPS) varia para cada aplicação. Para calcular quais devem ser os atrasos para sua aplicação, você pode usar a fórmula abaixo:

  • Duração do teste de carga (em segundos) * (TPS + Atrasos) * Número de Usuários Concorrentes = Total de Transações

Por exemplo, vamos considerar gerar 100.000 transações com um tempo de resposta de 5 segundos cada durante um teste de 10 minutos (600 segundos). Para determinar o número necessário de usuários concorrentes com um think time de 3 segundos, use a fórmula: 100.000 / (8 * 10 * 60), resultando em aproximadamente 21 usuários. Essa abordagem ajuda a identificar os atrasos e o número de usuários necessários para testes de carga eficazes.

Configurando Atrasos para Testes de Carga com LoadView

O LoadView oferece o EveryStep Web Recorder que simplifica a criação de cenários de teste gravando as ações do usuário no navegador. Ele replica fielmente os passos do usuário, capturando pontos de dados como seletores, ações e atrasos. Durante a criação do seu cenário de teste, é essencial emular a jornada autêntica do usuário, incluindo atrasos de think time. Após a gravação, a ferramenta gera um script que pode ser executado novamente com o número especificado de usuários concorrentes. O script é personalizável, permitindo aos usuários modificar e atualizar atrasos para etapas individuais conforme necessário para o teste, como demonstrado na imagem abaixo. Explore mais sobre como editar scripts do EveryStep Web Recorder.

A abordagem ideal para obter resultados precisos em um teste de carga envolve criar um script que simule interações reais do usuário com a aplicação e capture a jornada do usuário.

Add Delays to Script

Com o LoadView, você também terá a opção de modificar o comportamento do usuário durante o teste de carga. Como você pode ver na imagem abaixo, é possível escolher Atraso Normal ou Atraso Personalizado para definir comportamentos e atrasos específicos para suas aplicações.

Adjust User Behavior

Conclusão: Think Time, Pacing e Atrasos

Realizar testes de performance na sua aplicação é crucial antes do seu deployment em produção. A eficácia desse processo em identificar problemas reais relacionados a performance depende da aderência às melhores práticas e da elaboração de cenários de teste que contemplem ações reais dos usuários dentro da aplicação.

Este artigo explorou a importância do think time, pacing e atrasos em testes de carga. Ao incorporar esses elementos no design dos seus testes, problemas como timeouts de página, respostas lentas, discrepâncias no tempo de resposta e erros de servidor podem ser detectados antecipadamente, mesmo sob cargas elevadas. Adotar essas estratégias contribui para o desenvolvimento de aplicações e sites responsivos e confiáveis. O LoadView pode ajudar a simplificar esse processo, e você pode incorporar facilmente think time, pacing e atrasos nos seus cenários de teste para extrair o máximo das suas tentativas. Quando você se inscrever no LoadView hoje, terá todos os benefícios de teste de carga que a plataforma oferece, e poderá fazer seus primeiros testes iniciais gratuitamente!

Leve seus Testes de Usuários Concorrentes para o
Próximo Nível

Experimente recursos incomparáveis com escalabilidade ilimitada. Sem cartão de crédito, sem contrato.