Teste de carga vs. Teste de estresse

Teste de carga e estresse comparado

Um teste de carga, por definição, mede o desempenho de um sistema sob uma carga esperada.

Em contraste, um teste de estresse sobrecarrega um sistema para encontrar o ponto de ruptura.

Examinando as diferenças:

Carga vs. Teste de estresse

 

teste de desempenho de estresse Um teste de carga é um teste planejado para realizar um número especificado de solicitações em um sistema, a fim de testar a funcionalidade do sistema sob níveis específicos de solicitações simultâneas. Um teste de carga garante que um sistema web pode lidar com um volume esperado de tráfego e, portanto, às vezes é chamado de teste de volume. O objetivo de um teste de carga é provar que um sistema pode lidar com o volume esperado com degradação de desempenho mínima a aceitável. O limiar de degradação de desempenho aceitável deve ser definido pelos testadores como algum valor considerado aceitável para o usuário final para que os usuários não saltem do site.

Um teste de estresse é um teste projetado para aumentar o número de solicitações simultâneas em um sistema após um ponto onde o desempenho é degradado, possivelmente até mesmo ao ponto de falha completa. Quando um teste de carga atingir o pico no número de usuários simultâneos, um teste básico de estresse continuará aumentando a carga no sistema até que os recursos estejam sobrecarregados. Isso empurra o sistema para um estado de potencial falha para ver como o sistema lida com ele e se o sistema pode realizar uma recuperação graciosa.

Dentro dessas definições de um teste de carga e um teste de estresse, descobrimos que eles certamente não são completamente independentes um do outro. Muitas vezes, ao executar os limites superiores de um teste de carga, você pode efetivamente acabar executando um teste de estresse onde você empurra o sistema além dos limites dos recursos disponíveis. Neste ponto, você pode começar a ver falhas em um teste de carga idêntico às falhas normalmente vistas ao executar um teste de estresse.

Quando escolher um teste de carga ou teste de estresse

 

Uma diferença entre um teste de carga e um teste de estresse é que você pode injetar pausas em um teste de carga para simular o tráfego real do usuário. Com um teste de estresse, você pode executar o maior número de usuários simultâneos o mais rápido possível para gerar tráfego excessivo para um teste de estresse.

Os objetivos de um teste de carga são muito diferentes dos objetivos de um teste de estresse. Um teste de carga é realizado para garantir que um site ou aplicativo web seja capaz de lidar com números específicos de usuários ao mesmo tempo. O teste de carga é frequentemente usado no processo de planejamento de capacidade, para garantir que um sistema possa lidar com o crescimento para níveis especificados de tráfego simultâneo.

Um teste de estresse é usado para empurrar especificamente um sistema além de sua capacidade pretendida de identificar componentes que começam a desacelerar, identificar gargalos no sistema e trazer à luz possíveis pontos de falha.

Comumente usado para testes de carga e estresse:
Estabelecendo métricas de desempenho da linha de base

O teste de carga é normalmente realizado como uma série de etapas em que o sistema de teste inicia uma quantidade de usuários simultâneos que é conhecido por ser suportado pela infraestrutura. Isso estabelece um conjunto de dados de desempenho de linha de base para referência à medida que o número de usuários simultâneos é aumentado ao longo do teste. Este teste de linha de base às vezes é chamado de teste de desempenho. Um teste de desempenho pode ajudar a determinar vários benchmarks diferentes, como velocidade média de conexão, latência média e tempo médio para baixar um arquivo de um tamanho fixo e muito mais.

Uma vez que os valores de desempenho da linha de base são conhecidos, o número de usuários é aumentado para um número que pode ser realisticamente esperado para visitar o site durante um período de amostra. O teste será executado frequentemente nesse número estático de usuários por vários minutos, a fim de verificar a estabilidade do site após o sistema estabilizar no novo nível de carga.

usuários virtuais

Uma diferença entre estabelecer uma métrica de desempenho na linha de base durante um teste de carga e um teste de estresse é que a diferença entre a linha de base e o desempenho máximo ajudará a determinar se você tem os sistemas adequados para lidar com a carga máxima, enquanto durante um teste de estresse você está mais preocupado com o ponto em que o sistema fica estressado e possivelmente até deixa de funcionar corretamente.

Teste de carga ou estresse para identificar gargalos de aplicativos da Web

Aplicativos baseados na Web normalmente são executados em um navegador e quando programados corretamente, devido à sua natureza assíncrona, podem lidar com muitas centenas ou milhares de usuários simultâneos. Se você está gerando carga esperada dentro da capacidade do seu sistema, os tempos de resposta do aplicativo devem permanecer dentro das diretrizes geradas. Se você empurrar o sistema para além desses limites, você se move para o reino dos testes de estresse, causando propositalmente tensão no sistema para identificar os componentes que falham. Portanto, qualquer teste realizado com o objetivo de identificar gargalos é tipicamente considerado um teste de estresse.

relatório sla
Teste de carga para estabelecer SLAs (Service Level Agreements, contratos de nível de serviço)

 

Os testes de carga são melhor realizados em um ambiente de produção para entender os tempos médios de resposta sob a carga esperada do usuário. Esses tempos de resposta médios tornam-se a linha de base para SLAs aceitáveis. A partir daqui, cabe a você determinar limites adicionais que são considerados inaceitáveis sob seus SLAs em termos de desempenho esperado para seus clientes.

Teste de carga para planejamento de capacidade

Gerar maior carga em um aplicativo web pode ajudar a prever o desempenho do aplicativo para uma carga de usuário mais pesada no futuro. Se o aplicativo responder dentro de seus parâmetros SLA, tal teste geralmente seria considerado um componente bem-sucedido no planejamento de capacidade. Se as métricas de desempenho registradas durante o teste estiverem fora dos parâmetros desejáveis, um teste de carga pode se tornar um teste de estresse à medida que você empurra o sistema para além de sua capacidade disponível.

Teste de estresse Infraestrutura de aplicativos web

Identificar o ponto em que cada componente em sua infraestrutura falhará é uma parte crítica da manutenção de um aplicativo web escalável. Testes eficazes de estresse permitem isolar cada componente através de uma série de testes diferentes, a fim de determinar o ponto de falha para esse componente. Esses testes podem incluir:

  • Isolando todo o tráfego para uma região geográfica específica.
  • Limitando artificialmente o espaço disponível em disco.
  • Enviando repetidamente um pedido get particularmente grande.
  • Limitando o número máximo de conexões de dados.
  • Baixando um grande arquivo de imagem.
  • Enviando repetidamente um POST intenso que escreve fortemente para um banco de dados.

Cada teste foi projetado para enfatizar um determinado componente da infraestrutura para identificar os pontos de falha, a taxa de falha e os limites superiores da capacidade do sistema. Testes de estresse podem ajudar a identificar gargalos durante breves cargas intensas de coisas como marketing viral, reconhecimento internacional de notícias e dias pesados de compras online, como a Black Friday.

As diferenças entre testes de carga e testes de estresse

Resumo do LoadView

Um teste de estresse normalmente maximizará uma parte do sistema ou outra que eventualmente causa lentidão e, em seguida, trava ou não responde. É importante determinar quais componentes no sistema serão os primeiros a encontrar problemas durante o teste. Por essa razão, existem vários componentes que recomendamos que você monitore ao realizar um teste de estresse. Vale a pena notar que, dependendo do aplicativo, software ou até mesmo tecnologia sendo usada em seu ambiente/sistema, quais métricas você mede durante um teste de estresse pode variar. No entanto, a lista a seguir comp

  • Tempos de resposta. Tempo necessário para receber uma resposta depois que uma solicitação é enviada. Isso é especialmente importante para medir os tempos de resposta percebidos pelos usuários
  • Restrições de hardware. Isso inclui monitorar o uso da CPU, RAM, I/O do disco. Se os tempos de resposta estiverem atrasados ou lentos, esses componentes de hardware podem ser potenciais culpados.
  • Throughput. Quantos dados são enviados/recebidos durante a duração do teste com base nos níveis de largura de banda.
  • Banco de dados lê e escreve. Se o aplicativo utilizar vários sistemas, testes de estresse podem indicar qual sistema ou unidade é o gargalo.
  • Conexões de banco de dados abertas. Grandes bancos de dados podem afetar severamente o desempenho, diminuindo os tempos de resposta.
  • Conteúdo de terceiros. Páginas da Web e aplicativos dependem de muitos componentes de terceiros. Testes de estresse mostrarão quais podem afetar o desempenho da sua página ou aplicativo.

Se você não tiver sistemas de monitoramento adequados no lado do servidor, a plataforma Dotcom-Monitor fornece uma solução de monitoramento de contador de desempenho para monitoramento completo do desempenho do servidor de ponta a ponta. Esses contadores de desempenho são instalados diretamente em seus servidores para monitorar contadores de desempenho do Windows, Linux ou SNMP. Além disso, há também uma solução para monitorar quaisquer contadores de desempenho personalizados de seus dispositivos e servidores. Para obter mais informações sobre monitoramento de contador de desempenho, visite nossa página de soluções de monitoramento de contador de desempenho.

Problemas com qualquer um desses itens podem ser manifestados como:

  • Resposta lenta do primeiro pacote.
  • Longos atrasos entre solicitações e respostas GET/POST.
  • Tempos de carga de página mais longos do que o normal.
  • O tempo de carregamento da página da Web.
  • Códigos de erro do servidor retornados.

Embora esses mesmos problemas possam ser detectados inicialmente durante um teste de carga, a ideia por trás de um teste de carga é geralmente simular cargas esperadas que o sistema deve ser capaz de lidar regularmente. Às vezes, pode ser o caso em que o sistema experimenta brevemente a desaceleração enquanto os recursos estão sendo alocados para o aumento da carga, mas na maioria dos casos o sistema deve ser capaz de se recuperar da alocação inicial e retomar o desempenho normal sob um teste de carga.

Se o teste de carga continuar detectando problemas, então você precisa dar uma olhada mais de perto nos contadores de desempenho do sistema para determinar a causa raiz da desaceleração ou falha. É quando um teste de carga essencialmente se torna um teste de estresse, pois a carga inesperadamente causa problemas de desempenho. Entre em contato com nossa equipe para uma demonstração da plataforma LoadView. Um engenheiro de desempenho irá levá-lo durante todo o processo de teste de carga e estresse. Desde a exibição de scripts para cenários de página web ou aplicativos da Web, até a configuração e lançamento do teste, eles o levarão durante todo o processo e responderão a quaisquer perguntas que você possa ter ao longo do caminho.

Executar uma carga ou um teste de estresse hoje!

Sem cartão de crédito. Sem compromisso. Pague como você vai.