Pular para o conteúdo
SDETRole
SDETRole

Glossário · Performance

Teste de estresse

Em inglês: Stress testing

Também chamado de: stress test, testes de estresse, teste de stress, breakpoint testing

Definição

Teste de performance que leva a carga além do esperado para encontrar o ponto de ruptura, ver como o sistema falha e verificar se ele se recupera depois.

O teste de estresse (stress testing) leva deliberadamente o sistema além da carga esperada, passo a passo, até ele deixar de atingir as metas ou falhar de vez. Enquanto um teste de carga pergunta “aguentamos o pico normal?”, um teste de estresse pergunta “quanto conseguimos aguentar, o que quebra primeiro e o que acontece com os usuários quando isso acontece?”

Exemplo (k6 com taxa de chegada crescente)

Aumentando a taxa de requisições em degraus, independentemente da velocidade de resposta do servidor:

import http from 'k6/http';

export const options = {
  scenarios: {
    breakpoint: {
      executor: 'ramping-arrival-rate',
      startRate: 50,
      timeUnit: '1s',
      preAllocatedVUs: 200,
      maxVUs: 2000,
      stages: [
        { duration: '5m', target: 200 },
        { duration: '5m', target: 400 },
        { duration: '5m', target: 800 },
        { duration: '3m', target: 0 }, // ramp down to observe recovery
      ],
    },
  },
};

export default function () {
  http.get('https://staging.example.com/api/search?q=shoes');
}

Um executor por taxa de chegada continua enviando requisições na taxa alvo mesmo quando as respostas ficam lentas, o que se aproxima mais do comportamento de usuários reais e expõe a saturação com mais clareza do que um número fixo de usuários virtuais.

O que observar

  • O joelho da curva. A taxa a partir da qual os percentis de latência começam a subir bruscamente enquanto o throughput se estabiliza. Essa é a sua capacidade prática.
  • O modo de falha. Uma degradação elegante se parece com respostas 429 ou 503 rápidas e descarte de carga. Uma falha ruim se parece com timeouts, falhas em cascata em outros serviços, corrupção de dados ou processos derrubados.
  • A recuperação. Depois da rampa de descida, a latência volta ao normal sozinha, ou conexões travadas e filas cheias exigem um restart?
  • O primeiro gargalo. CPU, pool de conexões do banco, pool de threads, memória ou uma dependência downstream. Corrigi-lo desloca o ponto de ruptura, por isso os testes de estresse costumam ser repetidos.

Como ele se diferencia do teste de spike

Um teste de estresse sobe gradualmente para encontrar um limite. Um teste de spike salta da carga normal para uma carga muito alta quase instantaneamente, como em uma promoção relâmpago ou uma notificação push, e verifica se o autoscaling e as filas reagem rápido o suficiente.

Erros comuns

Rodar testes de estresse em ambientes compartilhados dos quais outros times dependem, rodá-los a partir de um único gerador de carga que satura antes do servidor e parar em “quebrou a 800 rps” sem registrar como quebrou e se o sistema se recuperou.

Digite para buscar em todo o SDETRole.

Busca de texto completo com Pagefind · roda no seu navegador Abrir página de busca →