O que é teste de carga? (Exemplos)

⚡ Resumo Inteligente

O teste de carga mede o comportamento de um aplicativo de software quando muitos usuários o acessam simultaneamente, até o pico esperado. Ele identifica a capacidade operacional máxima, os gargalos que a limitam e se a infraestrutura atual é suficiente.

  • 👥 Definição Essencial: Um teste não funcional que aplica a carga máxima de usuários esperada e mede a resposta.
  • ⏱️ Métrica principal: O tempo de resposta deve ser quantitativo, relevante, realista, alcançável e mensurável.
  • ???? O que ele encontra: Capacidade máxima, lacunas na infraestrutura, limites do banco de dados e problemas de configuração.
  • 📉 Carga versus Tensão: A carga para no pico esperado; a tensão o ultrapassa deliberadamente para encontrar o ponto de ruptura.
  • 🛠️ Opções de ferramentas: JMeterGatling e k6 são de código aberto; LoadRunner é a opção comercial consolidada.
  • 📋 Pré-requisito: Execute o comando somente quando o aplicativo estiver funcionalmente estável; caso contrário, os defeitos mascararão os resultados de desempenho.

O que é um teste de carga?

O que é Teste de Carga?

Teste de carga é um processo de teste de software não funcional no qual o desempenho do aplicativo de software é testado sob uma carga específica esperada. Ele determina como o aplicativo de software se comporta ao ser acessado por vários usuários simultaneamente. O objetivo do teste de carga é melhorar os gargalos de desempenho e garantir a estabilidade e o bom funcionamento do aplicativo de software antes da implantação.

Este teste geralmente identifica -

  • A capacidade operacional máxima de uma aplicação
  • Determine se a infraestrutura atual é suficiente para executar o aplicativo
  • Sustentabilidade da aplicação em relação ao pico de carga de usuários
  • Número de usuários simultâneos que um aplicativo pode suportar e escalabilidade para permitir que mais usuários o acessem.

É um tipo de teste não funcional. Na Engenharia de Software, o teste de carga é comumente usado para aplicativos cliente/servidor baseados na Web – tanto Intranet quanto Internet.

Teste de carga

Por que é necessário realizar testes de carga?

Alguns sites extremamente populares sofreram sérios períodos de inatividade quando obtiveram grandes volumes de tráfego. Os sites de comércio eletrônico investem pesadamente em campanhas publicitárias, mas não em testes de carga para garantir o desempenho ideal do sistema, quando esse marketing atrai tráfego.

exemplos de teste de carga

  • A Toysrus.com não conseguiu lidar com o tráfego gerado por sua própria campanha publicitária, perdendo tanto o investimento em marketing quanto as vendas que deveria ter gerado.
  • O site de uma companhia aérea não conseguiu atender mais de 10000 usuários durante uma oferta de festival.
  • A Enciclopédia Britânica declarou o acesso gratuito ao seu banco de dados online como uma oferta promocional. Eles não conseguiram acompanhar o ataque do tráfego por semanas.

Muitos sites sofrem atrasos no carregamento quando encontram tráfego intenso. Poucos fatos –

  • O abandono aumenta drasticamente após cerca de 3 segundos de tempo de carregamento da página, e o efeito se agrava em conexões móveis.
  • Páginas lentas custam aos sites de e-commerce receita mensurável a cada visita, razão pela qual o desempenho é tratado como uma métrica de negócios, e não apenas técnica.

Por que testes de carga?

  • O teste de carga dá confiança no sistema e em sua confiabilidade e desempenho.
  • O teste de carga ajuda a identificar gargalos no sistema em cenários de grande estresse do usuário, antes que eles aconteçam em um ambiente de produção.
  • O teste de carga oferece excelente proteção contra desempenho insatisfatório e acomoda estratégias complementares para gerenciamento de desempenho e monitoramento de um ambiente de produção.

Objetivos do teste de carga

O teste de carga identifica os seguintes problemas antes de mover o aplicativo para o mercado ou produção:

  • Tempo de resposta para cada transação
  • Desempenho dos componentes do sistema sob diversas cargas
  • Desempenho dos componentes do banco de dados sob diferentes cargas
  • Atraso de rede entre o cliente e o servidor
  • Problemas de design de software
  • Problemas de configuração do servidor, como servidor Web, servidor de aplicativos, servidor de banco de dados, etc.
  • Problemas de limitação de hardware, como maximização da CPU, limitações de memória, gargalos de rede, etc.

O teste de carga determinará se o sistema precisa ser ajustado ou se é necessária modificação de hardware e software para melhorar o desempenho. Para conduzir testes de carga com eficácia, você pode utilizar vários ferramentas de teste de desempenho que estão disponíveis para ajudá-lo a identificar áreas de melhoria.

Pré-requisitos para testes de carga

A principal métrica para testes de carga é o tempo de resposta. Antes de começar o teste de carga, você deve determinar –

  • Se o tempo de resposta já foi medido e comparado – Quantitativo
  • Se o tempo de resposta é aplicável ao processo de negócios – Relevante
  • Se o tempo de resposta é justificável – Realista
  • Se o tempo de resposta é alcançável – Alcançável
  • Se o tempo de resposta é mensurável usando uma ferramenta ou cronômetro – Mensurável

Configuração do ambiente antes do teste de carga

Plataforma de hardware Configuração de Software
  • Máquinas Servidoras
  • Processadores
  • Memória
  • Armazenamento em Disco
  • Configuração de máquinas de carga
  • Configuração de rede
  • Sistema Operacional
  • Software Servidor

Estratégias de teste de carga

Existem muitas maneiras de realizar testes de carga. A seguir estão algumas estratégias de teste de carga-

Estratégias de teste de carga

  • Teste de carga manual: Esta é uma das estratégias para executar testes de carga, mas não produz resultados repetíveis, não pode fornecer níveis mensuráveis ​​de estresse em um aplicativo e é um processo impossível de coordenar.
  • Ferramentas de teste de carga desenvolvidas internamente: Uma organização que percebe a importância dos testes de carga pode construir suas próprias ferramentas para executar testes de carga.
  • Ferramentas de teste de carga de código aberto: Existem diversas ferramentas de teste de carga disponíveis como código aberto e gratuitas. Eles podem não ser tão sofisticados quanto seus equivalentes pagos, mas se você estiver com orçamento limitado, eles são a melhor escolha.
  • Ferramentas de teste de carga de classe empresarial: Eles geralmente vêm com recurso de captura/reprodução. Eles suportam um grande número de protocolos. Eles podem simular um número excepcionalmente grande de usuários.

Como fazer testes de carga

O processo de teste de carga pode ser brevemente descrito abaixo –

  1. Crie um dedicado Ambiente de teste para teste de carga
  2. Defina os cenários de teste de carga.
  3. Determinar transações de teste de carga para um aplicativo
    • Prepare dados para cada transação
    • O número de usuários que acessam o sistema precisa ser previsto
    • Determine as velocidades de conexão. Alguns usuários podem estar conectados através de linhas alugadas, enquanto outros podem usar conexão discada.
    • Determine diferentes navegadores e sistemas operacionais usados ​​pelos usuários 
    • Uma configuração de todos os servidores, como servidores web, de aplicativos e de banco de dados
  4. Execução e monitoramento de cenários de testes. Coletando várias métricas
  5. Analise os resultados. Fazer recomendações
  6. Ajuste o sistema
  7. Teste novamente

Diretrizes para Teste de Carga

Diretrizes para testes de carga

  1. O teste de carga deve ser planejado assim que o aplicativo se tornar funcionalmente estável.
  2. Um grande número de dados exclusivos deve estar pronto no pool de dados
  3. O número de usuários deve ser decidido para cada cenário ou script
  4. Evite a criação de logs detalhados para conservar o espaço de E/S do disco
  5. Tente evitar download de imagens no site
  6. No processo de execução de casos de teste de teste de carga, a consistência do tempo de resposta ao longo do período decorrido deve ser registrada e a mesma deve ser comparada com várias execuções de teste.

Diferença entre testes de carga e estresse

Teste de carga Teste de estresse
O teste de carga identifica os gargalos no sistema sob diversas cargas de trabalho e verifica como o sistema reage quando a carga aumenta gradualmente Teste de estresse determina o ponto de ruptura do sistema para revelar o ponto máximo após o qual ele quebra.
Para reconhecer o limite superior do sistema, defina o SLA do aplicativo e verifique como o sistema aguenta uma carga pesada. Para verificar como o sistema se comporta sob cargas extremas e como ele se recupera de falhas.
Gerar maior carga em um aplicativo da web é o principal objetivo do teste de carga. Os testes de estresse visam garantir que, sob uma carga repentina e alta por um período considerável, os servidores não travem.
Os atributos verificados em um teste de carga são desempenho máximo, quantidade de servidores e tempo de resposta. Este tipo de teste verifica a estabilidade, o tempo de resposta, etc.
No teste de carga, o limite de carga é um limite de quebra. Nos testes de estresse, o limite de carga está acima do limite de interrupção.

Diferença entre testes funcionais e de carga

Teste funcional Teste de carga
Os resultados dos testes funcionais são facilmente previsíveis, pois temos etapas e pré-condições adequadas definidas Os resultados dos testes de carga são imprevisíveis
Os resultados dos testes funcionais variam ligeiramente Os resultados dos testes de carga variam drasticamente
Frequência de execução Teste funcional vai estar alto A frequência de execução de testes de carga será baixa
Os resultados dos testes funcionais dependem dos dados do teste O teste de carga depende do número de usuários.

Ferramentas de teste de carga

LoadRunner

LoadRunner, originalmente da HP e agora parte da OpenText Após a aquisição pela Micro Focus, o programa testa aplicações sob cargas normais e de pico. Ele gera carga através de usuários virtuais que emulam o tráfego de rede real e apresenta os resultados graficamente.

Leia mais no Tutorial do LoadRunner.

Apache JMeter

Um código aberto Java É a ferramenta e a opção gratuita mais utilizada. Ela suporta HTTP, JDBC, JMS, FTP e muito mais, armazena planos de teste em XML e se integra a pipelines de CI. Veja o JMeter tutorial Para um passo a passo.

Gatling

Uma ferramenta de código aberto cujos testes são escritos como código em Scala ou JavaEle lida com alta concorrência em hardware modesto e produz relatórios HTML detalhados, o que é adequado para equipes que preferem scripts de teste com controle de versão.

k6

Uma ferramenta de código aberto com testes escritos em JavaScript desenvolvido para testes de desempenho conduzidos por desenvolvedores dentro de um pipeline de CI, em vez de como uma atividade de controle de qualidade separada.

Escolhendo uma ferramenta

Pick JMeter Para obter a cobertura de protocolos mais ampla sem custo adicional, utilize Gatling ou k6 quando a equipe desejar manter os testes no controle de versão junto com o aplicativo, e uma ferramenta comercial como o LoadRunner quando o suporte a protocolos corporativos e a assistência do fornecedor justificarem a licença.

Vantagens e desvantagens dos testes de carga

A seguir estão as vantagens do teste de carga:

  • Identificação de gargalos de desempenho antes da produção
  • Melhora a escalabilidade do sistema
  • Minimize o risco relacionado ao tempo de inatividade do sistema
  • Custos reduzidos de falha
  • Aumente a satisfação dos clientes.

Desvantagens do teste de carga:

  • A maioria das ferramentas exige conhecimento de programação para criar cenários realistas.
  • As ferramentas podem ser caras, pois o preço depende do número de usuários virtuais suportados.

Principais métricas a serem coletadas durante um teste de carga

A seção de pré-requisitos estabelece o tempo de resposta como a principal métrica. Na prática, um relatório de teste de carga precisa de seis dígitos, porque o tempo de resposta sozinho não consegue explicar por que um sistema ficou mais lento.

métrico O que isso te diz Sinal de aviso
Tempo médio de resposta A experiência típica do usuário Aumenta conforme a carga aumenta.
tempo de resposta do 95º percentil A experiência dos usuários mais lentos Muito acima da média
Produtividade Solicitações processadas com sucesso por segundo Achatamento ou queda enquanto a carga aumenta
Taxa de erro Proporção de solicitações com falha ou que expiraram. Qualquer aumento acima do limite acordado
Usuários concorrentes Sessões simultâneas reais alcançadas Inferior ao cenário pretendido
Uso de recursos do servidor Capacidade de CPU, memória, disco e rede Qualquer recurso acima de aproximadamente 80%

Taxa de transferência de leitura juntamente com o tempo de resposta. O aumento do tempo de resposta com o aumento da taxa de transferência simplesmente significa que o sistema está mais ocupado. O aumento do tempo de resposta com caindo A taxa de transferência significa que o processo ultrapassou sua capacidade e agora está perdendo trabalho, que é o ponto que o teste visa identificar.

Nunca apresente apenas a média. Uma média de 900 ms com um percentil 95 de 1.1 segundos descreve um sistema consistente. A mesma média com um percentil 95 de 11 segundos significa que um em cada vinte usuários está tendo uma experiência inaceitável que a média não está enxergando.

Como este teste se compara a outros testes de desempenho

Os testes de desempenho são uma família de testes que diferem na forma da carga aplicada, razão pela qual são tão facilmente confundidos.

Tipo de teste O que é aumentado? Pergunta que responde
Teste de carga Usuários simultâneos, até o pico esperado Será que atinge as metas em condições normais de pico de tráfego?
teste de volume Dados armazenados no banco de dados Será que ele consegue lidar com o crescimento do conjunto de dados?
Teste de estresse Carga além da capacidade, até a falha Onde e como se rompe?
teste de pico Carregue instantaneamente e extremamente Será que sobrevive e se recupera de um choque?
Teste de resistência Duração, sob carga normal O desempenho se deteriora com o tempo?
teste de imersão Duração, recursos de visualização Há vazamentos de memória ou de identificadores?
Teste de estabilidade Condições variáveis Ele permanece confiável mesmo com a mudança das condições?

A distinção que mais importa aqui é: Os testes de volume dimensionam os dados, os testes de carga dimensionam os usuários. Um relatório que leva dois segundos para ser executado em dez mil linhas e dois minutos em dez milhões de linhas tem um problema de volume, não de carga, e nenhuma quantidade extra de capacidade do servidor irá resolvê-lo.

Perguntas Frequentes

O teste de carga aplica a carga máxima esperada e verifica se as metas são atingidas. O teste de estresse excede deliberadamente a capacidade para encontrar o ponto de ruptura e confirmar se o sistema falha e se recupera de forma controlada.

Assim que a aplicação estiver funcionalmente estável, e ainda em fase inicial o suficiente para que um gargalo detectado possa ser corrigido, executá-la na última semana não deixa tempo para agir com base no que ela encontrar.

JMeterPor ser gratuito, suportar a maior variedade de protocolos e possuir a documentação mais extensa, opte pelo Gatling ou k6 caso a equipe prefira testes escritos em código versionado.

A IA extrai perfis de carga realistas a partir de registros de tráfego de produção, detecta anomalias nos resultados automaticamente e prevê quais alterações de código provavelmente degradarão o desempenho antes que uma execução seja agendada.

Sim. As ferramentas de IA convertem jornadas de usuários gravadas ou especificações de API em scripts executáveis. Verifique os tempos de resposta gerados e a parametrização dos dados, pois valores irreais produzem resultados enganosos.

Resuma esta postagem com: