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 a um sistema para 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, mesmo a ponto de falha completa. Quando um teste de carga (ou teste de API) 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 bem diferentes em comparação com os objetivos de um teste de estresse. Um teste de carga é realizado para garantir que um site, aplicativo web ou API seja capaz de lidar com números específicos de usuários ao mesmo tempo. Os testes de carga são frequentemente usados 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 gargalos ou 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. O teste de desempenho pode ajudar a determinar várias linhas de base 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 para verificar a estabilidade do site depois que o sistema se estabilizar no novo nível de carga.

usuários virtuais

É importante notar que os termos de teste de linha de base e testes de benchmark são frequentemente usados de forma intercambiável, no entanto, há diferenças entre esses dois termos. Testes de linha de base são realizados para garantir que o desempenho de um site ou aplicativo não diminua ao longo do tempo. Por exemplo, durante um teste de linha de base, métricas de desempenho são registradas para que, quando esse aplicativo ou site for atualizado no futuro, os engenheiros possam testar e comparar as novas métricas de desempenho com as métricas anteriores. Esses testes de linha de base também incluiriam qualquer novo código, software, hardware e alterações de rede. O objetivo é entregar um aplicativo ou site consistente, o que, por sua vez, garante uma experiência positiva para os usuários.

O teste de benchmark é a prática de comparar o desempenho do aplicativo com os padrões e requisitos específicos do setor pré-definidos ou organizacionais. Como testes de linha de base, os testes de benchmark incluem o desempenho de medição e gravação de hardware, software e condições de rede. Testes de benchmark ajudam a medir a qualidade do serviço para os próprios requisitos de uma organização ou contra outras organizações. Essas métricas ajudam a criar SLAs (Service Level Agreements) para organizações e fornecem um nível de serviço garantido para usuários ou clientes. Leia mais sobre os testes de linha de base e benchmark.

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 de pico 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, ou mesmo 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 (isso é frequentemente realizado com ferramentas de código aberto como o JMeter). Portanto, qualquer teste realizado com o propósito de identificar gargalos é tipicamente considerado um teste de estresse (que é diferente dos testes de API e monitoramento de API).

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 será 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 para determinar o ponto de falha desse 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.

Componentes para monitorar quando e teste de estresse

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.

  • 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 culpados em potencial.
  • 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.
relatório de desempenho

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 (Simple Network Management Protocol). 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.
  • Atrasos substanciais 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 é 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 se torna um teste de estresse, pois a carga inesperadamente causa problemas de desempenho. Quer saber mais? 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.

Nossa equipe na LoadView está disponível para apoiar você e sua equipe de desenvolvimento a obter o máximo de seu processo e orçamento de teste de carga e estresse. Ao entender quando executar testes de carga e estresse, respectivamente, com o apoio de nossa plataforma fácil de usar e especialistas úteis, você será capaz de integrar um processo de teste inteligente em sua estratégia de DevOps e entregar rapidamente resultados para os usuários de seus sites e aplicativos da Web.

Como acontece com a maioria das coisas no cenário digital em rápida mudança, é importante aproveitar a ajuda de especialistas. Na LoadView, nosso foco total está no desenvolvimento de nossa plataforma líder do setor para testes de carga e estresse. Ajudamos nossos clientes a se concentrarem no que importa ao testar a carga: resultados precisos e acionáveis que podem ser transformados em insights que impulsionam mudanças significativas no desenvolvimento de sites e aplicativos e na infraestrutura de suporte.

Sem testes regulares de carga e estresse, seus sites e aplicativos correm o risco de degradação do desempenho ou tempo de inatividade grave. Mesmo que você tenha certeza de que seus sites são à prova de falhas, testes adequados ajudarão você e sua equipe de desenvolvimento a fazer melhorias que podem dar ainda mais tranquilidade e uma experiência melhor para seus usuários em todo o mundo. No mundo online, a velocidade importa. Ao usar o LoadView como sua plataforma de teste de carga e estresse, você será capaz de oferecer a melhor experiência possível para seus usuários e garantir o tempo de atividade. Inscreva-se para uma avaliação gratuita do LoadView hoje.

Executar uma carga ou um teste de estresse hoje!

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