Teste de carga: pense em tempo, ritmo e atrasos



O que é Think Time em Testes de Desempenho?

O tempo de reflexão no teste de carga refere-se ao atraso simulado ou pausa entre ações consecutivas do usuário durante um teste de desempenho. Ele representa o tempo que um usuário passa pensando, lendo ou ficando inativo depois de concluir uma ação e antes de iniciar a próxima. O tempo de reflexão é introduzido nos cenários de teste para torná-los mais realistas e imitar o comportamento natural dos usuários reais que interagem com o aplicativo.

Por exemplo, considere um cenário de aplicativo Web de comércio eletrônico em que um usuário seleciona um bloco de produto. Em seguida, eles navegam até a página de exibição do produto e levam algum tempo para consumir e ler o conteúdo dessa página antes de eventualmente clicar no botão “Adicionar ao carrinho”. A duração decorrida entre clicar no bloco do produto e clicar em “Adicionar ao carrinho” é chamada de tempo de reflexão.

Normalmente, quando você pensa em teste de carga, pensa em apenas servir grandes quantidades de usuários simultâneos em seus aplicativos Web, sites ou APIs para ver como eles se comportam sob estresse. Pense que o tempo é útil para ajudar a simular melhor as etapas da jornada do usuário, como caminhos para comprar, pesquisar um produto ou fazer login em uma conta. Cada um desses exemplos tem valores de tempo de reflexão diferentes e é importante considerá-los ao testar a carga.

Vantagens do Think Time

  • Realismo: Incluir o tempo de reflexão replica o comportamento natural dos usuários que não interagem com um sistema continuamente. Isso aumenta o realismo dos cenários de teste de carga, tornando-os mais reflexivos das experiências reais do usuário.
  • Precisão da simulação do usuário: O tempo de reflexão ajuda a simular com precisão o comportamento do usuário durante o processo de teste. Os usuários normalmente gastam tempo lendo conteúdo, tomando decisões ou contemplando ações, e o tempo de pensamento permite a simulação dessas pausas naturais.
  • Desempenho: O Think Time libera recursos na máquina do Servidor de Execução entre solicitações. Isso permite que outros Usuários Virtuais (VUs) no Servidor de Execução enviem suas solicitações, impedindo que a máquina do Servidor de Execução enfrente restrições de E/S.
  • Solução de problemas aprimorada: Cenários realistas de tempo de reflexão ajudam a detectar gargalos de desempenho que podem não ser aparentes em cenários sem pausas. Ele ajuda a descobrir problemas relacionados a sessões de usuário, gerenciamento de sessão e capacidade de resposta geral do sistema.

Quando usar o Think Times

Incorporar tempos de pensamento em seu teste de carga pode ser difícil porque cada usuário é diferente. No lado positivo, os tempos de pensamento podem ser flexíveis e você precisa considerar um intervalo para seus valores de tempo de pensamento. Por exemplo, alguns usuários podem levar mais tempo para ler ou inserir dados em um formulário do que outros.

Você vai querer incorporar o tempo de reflexão entre essas ações para replicar o período de tempo em que uma pessoa recebe uma resposta com mais precisão do seu servidor para o momento em que a pessoa solicita uma nova página. Seu tempo de reflexão dependerá de seus cenários de usuário, e você deve determinar seus intervalos de valor de tempo de pensamento usando dados de seu site ou aplicativo. Você vai querer determinar a quantidade média de tempo que os usuários gastam em suas páginas.

 

O que é Pacing no Teste de Desempenho?

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

 

A importância de introduzir atrasos nos testes de carga

Testar o desempenho do aplicativo antes de seu lançamento generalizado ajuda a evitar possíveis inconvenientes para os usuários finais, como tempos limites, respostas lentas da página e tempo de inatividade. Para garantir resultados de teste realistas e descobrir quaisquer problemas, incorporar tempo de reflexão e ritmo em nosso design de cenário de teste é essencial.

Por exemplo, quando introduzimos o tempo de reflexão entre cada ação simultânea 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 espelha de perto o cenário típico de produção com usuários reais. Além disso, a incorporação do tempo de reflexão estende o tempo gasto pelo usuário no aplicativo, revelando quaisquer problemas relacionados à capacidade do servidor de lidar com usuários simultâneos de forma eficaz.

Calculando atrasos para testar aplicativos

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

  • Duração do teste de carga (em segundos) * (TPS + Atrasos) * Contagem simultânea de usuários = Transações Totais

Por exemplo, vamos considerar a geração de 100.000 transações com um tempo de resposta de 5 segundos cada durante um teste de 10 minutos (600 segundos). Para determinar os usuários simultâneos necessários com um tempo de reflexão 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 necessários e as contagens de usuários para testes de carga eficazes.

Configurando atrasos de teste de carga com o LoadView

O LoadView fornece o EveryStep Web Recorder, que simplifica a criação de cenários de teste gravando as ações do usuário em um navegador. Ele replica fielmente as etapas do usuário, capturando pontos de dados como seletores, ações e atrasos. Durante a criação do cenário de teste, é essencial emular sua jornada de usuário autêntica, incluindo atrasos de tempo de reflexão. Após a gravação, a ferramenta gera um script que pode ser executado novamente com o número especificado de usuários simultâneos. O script é personalizável, permitindo que os usuários modifiquem e atualizem atrasos para etapas individuais conforme necessário para testes, conforme 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 a criação de um script que simula interações reais do usuário com o aplicativo e captura a jornada do usuário.

Adicionar atrasos ao 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, você pode escolher Atraso Normal ou Atraso Personalizado para definir o comportamento e os atrasos específicos do usuário para seus aplicativos.

Ajuste o comportamento do usuário

Conclusão: Pense em tempo, ritmo e atrasos

A realização de testes de desempenho em seu aplicativo é crucial antes de sua implantação em produção. A eficácia desse processo na identificação de problemas precisos relacionados ao desempenho depende da adesão às práticas recomendadas e do desenvolvimento de cenários de teste que abrangem ações reais do usuário em seu aplicativo.

Este artigo explorou a importância do tempo de reflexão, do ritmo e dos atrasos no teste de carga. Ao incorporar esses elementos em seus designs de teste de carga, problemas como tempos limite de página, respostas de página lentas, discrepâncias de tempo de resposta e erros de servidor podem ser detectados com bastante antecedência, mesmo sob cargas altas. A adoção dessas estratégias contribui para o desenvolvimento de aplicativos e sites responsivos e confiáveis. O LoadView pode ajudar a simplificar esse processo e você pode incorporar facilmente tempo de reflexão, ritmo e atrasos em seus cenários de teste de carga para aproveitar ao máximo seus esforços de teste. Ao se inscrever no LoadView hoje, você terá todos os benefícios de teste de carga que a plataforma tem a oferecer, e poderá fazer seus primeiros testes iniciais gratuitamente!

Leve seu teste de usuário simultâneo para o
Próximo Nível

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