O teste de desempenho às vezes pode ser mal interpretado como martelar o servidor com alta taxa de transferência de solicitação, mas conceitos como tempo de pensamento, ritmo e atrasos nos ajudam a alcançar os padrões reais do usuário que acontecem durante a produção. Projetar o cenário de teste de desempenho o mais próximo de padrões de usuário realistas é muito crucial para alcançar resultados que encontrem problemas e gargalos genuínos nos aplicativos. No mesmo contexto, o tempo e o ritmo têm importância significativa ao desenvolver cenários de teste de carga. Neste artigo, abordaremos o tempo de reflexão, o ritmo e os atrasos, juntamente com seu significado, práticas recomendadas e como podemos configurar essas métricas como parte de nosso cenário de teste de carga com o LoadView. Vamos primeiro entender o que o tempo e o ritmo dos testes de carga significam quando se trata de testes de carga.
O que é o Tempo de Pensar?
Pense que o tempo no teste de carga é a diferença de tempo entre cada ação de um único usuário. Um usuário ao navegar pelo aplicativo passa algum tempo (tempo de pensar) antes de fazer alguma ação no site. Por exemplo, em um aplicativo Web de comércio eletrônico, um usuário clica em um bloco de produto, vai para a página de exibição do produto e, em seguida, espera lá para consumir e ler o conteúdo sobre essa página antes de clicar no botão Adicionar ao carrinho . O tempo gasto desde clicar no azulejo do produto até clicar em Adicionar ao Carrinho é chamado de tempo de pensar. O valor do tempo de pensar varia de usuário para usuário, mas para o nosso cenário de teste, podemos tirar a média do tempo de pensar.
Normalmente, quando você pensa em testes de carga e estresse, você pensa em apenas servir grandes quantidades de usuários simultâneos em seus aplicativos da Web, sites ou APIs para ver como eles se comportam sob estresse. Embora o teste de estresse tenha seu lugar no teste de desempenho, esse tipo de teste de desempenho não é adequado para entender o desempenho da perspectiva do usuário, pois isso realmente não simula cenários reais do mundo real. É aí que o tempo de pensar que chega 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, por exemplo. Cada uma dessas etapas tem valores de tempo de pensar diferentes e é importante levá-los em consideração durante o teste de carga.
O que é Pacing?
O ritmo é usado durante testes de carga para ter certeza de que estamos executando o teste com a transação desejada por segundo. É a diferença de tempo entre cada iteração completa do fluxo de negócios. Ele nos ajuda a controlar a contagem de solicitações enviadas ao servidor por segundo. Andar é um pouco diferente do tempo de pensar. Como descrevemos acima, pense que o tempo é o atraso entre ações dentro de iterações ou etapas. Como já mencionamos, o teste de carga não se trata de acertar o servidor com o maior número possível de solicitações sem demora, o plano de teste com rendimento desejado pode ser alcançado encontrando o valor correto do ritmo. Além disso, o ritmo, juntamente com o tempo de reflexão, também ajuda a simular melhor a experiência do usuário e fornece um teste de carga mais realista. Normalmente há um curto período de tempo entre iterações, por isso é um fator importante a considerar ao configurar seus testes de carga.
Por que é importante introduzir atrasos em cenários de teste de carga
O teste de carga do aplicativo antes do lançamento em estágio completo nos salva de uma experiência ruim potencial enfrentada pelos usuários finais com problemas, como tempo limite, respostas lentas de páginas e tempo de inatividade. Para chegar perto dos resultados realistas dos testes de carga e encontrar problemas, se houver, precisaríamos trazer nosso cenário de teste para ser o mais realista possível. A consideração do tempo e do ritmo em nosso projeto de cenário de teste nos ajuda a testar como o gerenciamento de filas do servidor, a utilização de threads e o gerenciamento de memória estão se comportando sob carga pesada. Por exemplo, se tentarmos adicionar tempo de pensar entre cada ação simultânea do usuário, durante esse atraso o servidor tende a escolher outras tarefas pendentes da fila, execute a próxima tarefa e escolha a tarefa antiga novamente. Este passo é exatamente o que acontece ao longo da produção com usuários reais. Adicionar tempo de pensar também aumenta o tempo gasto pelo usuário no aplicativo, que identifica questões relacionadas à capacidade simultânea de manuseio do usuário do servidor.
Como calcular atrasos para aplicações
O número de usuários virtuais simultâneos, atrasos e transações por segundo (TPS) varia para cada aplicativo. Então, para calcular quais devem ser os atrasos para nossa aplicação, podemos usar fórmulas abaixo.
Duração do teste de carga (em segundos) * (TPS + Atrasos) * Contagem simultânea de usuários = Transações Totais
Digamos, por exemplo, que gostaríamos de gerar 100.000 transações, cada transação tem um tempo de resposta de 5 segundos e estaríamos executando o teste por 10 minutos (600 segundos). Vamos calcular quantos usuários simultâneos exigiam assumir se temos 3 segundos de tempo de pensar em atrasos. Usando a fórmula acima, podemos calcular a contagem simultânea de usuários necessária. No nosso caso, seriam 100.000/(8*10* 60) que sai para ser em torno de 21 usuários. Desta forma, podemos encontrar os atrasos e números necessários para testes de carga.
Melhores práticas antes de executar um teste de carga
Para obter os melhores e mais precisos resultados dos testes de desempenho, devemos considerar responder abaixo à pergunta que se concentram nas melhores práticas durante o teste de carga.
Número de Usuários Simultâneos
Precisamos entender o que esperamos dos usuários concorrentes queremos fazer o benchmark do nosso aplicativo.
Simulando cenários reais de teste do usuário
Projetando o cenário de teste tendo em mente a verdadeira jornada do usuário, pense nos tempos gastos pelo usuário e atrasos entre cada teste.
Cargas virtuais geo-distribuídas
Os injetores de carga que geram cargas devem ser separados com base em geolocalizações específicas, se espera-se que nossa aplicação receba tráfego de todo o mundo.
Configuração do período de rampa
Definir o período de tempo de aceleração também ajuda a aumentar a escala no aplicativo gradualmente e torna nosso cenário de teste realista para o comportamento do aplicativo.
Duração do teste
A duração do tempo de um teste é importante para entender como o servidor se comporta quando é colocado sob carga contínua em linha reta.
Adicionando atrasos com o LoadView
O LoadView inclui o EveryStep Web Recorder, que fornece facilidade para criar cenários de teste registrando as ações realizadas por nós em um navegador. Ele imita as etapas exatas e o comportamento realizado pelo usuário, coleta todos os pontos de dados, como seletores, ações e atrasos. Ao criar nosso cenário de teste, seríamos obrigados a imitar a verdadeira jornada do usuário com atrasos no tempo de pensar. Uma vez que paramos a gravação, ela cria um script que pode ser reexecutado com usuários simultâneos desejados. Como você pode ver na imagem abaixo, também podemos modificar o script e atualizar atrasos para etapas individuais, conforme necessário para o teste. Saiba mais sobre a edição de scripts do EveryStep Web Recorder.
O script desenvolvido com interação real do usuário com o aplicativo e a jornada do usuário é considerado como a melhor abordagem que pode nos ajudar a alcançar resultados precisos fora do teste de carga.
Perfil de Comportamento do Usuário
Além disso, você tem a opção de modificar o comportamento do usuário da plataforma LoadView. Como você pode ver na imagem abaixo, você pode escolher entre Normal Delay ou escolher Custom Delay para definir comportamento específico do usuário e atrasos para seus aplicativos. Saiba mais sobre o Ajuste do Comportamento do Usuário.
Pensamentos de despedida: Teste de carga: pense tempo, ritmo e atrasos
Testar de desempenho uma aplicação é um aspecto crítico antes de enviá-lo para a produção. Ele só pode nos ajudar a encontrar esses problemas precisos relacionados ao desempenho se as melhores práticas forem seguidas e cenários de teste forem desenvolvidos que cobrem jornadas reais do usuário no aplicativo. Neste artigo, analisamos como ter em mente pensar o tempo e os atrasos durante a criação do projeto de cenário de teste pode ajudar a encontrar as questões inferiores do sistema. Ele nos ajuda a encontrar problemas como tempos limite de página, resposta lenta da página, tempo de resposta e erros do servidor com bastante antecedência em alta carga.
Essas estratégias podem nos ajudar a avançar em direção a aplicativos e sites responsivos e confiáveis. Experimente o EveryStep Web Recorder agora e veja a rapidez com que você pode criar scripts para seus aplicativos.
Inscreva-se no LoadView hoje e receba testes de carga gratuitos. Perguntas sobre a plataforma LoadView? Entre em contato com nossa equipe de suporte para falar com um de nossos engenheiros de desempenho.