Metodologia8 min

Tipos de Testes de Performance: qual usar e quando

Load test, stress test, soak test... Cada tipo de teste responde perguntas diferentes. Saiba qual usar para cada situação.

"Vamos fazer um teste de carga" é uma frase comum, mas existem diversos tipos de testes de performance, cada um respondendo perguntas diferentes. Usar o tipo errado pode dar uma falsa sensação de segurança — ou desperdiçar tempo testando o que não importa.

Este artigo explora os principais tipos de testes de performance e quando usar cada um.

O teste certo responde à pergunta certa. O teste errado dá confiança falsa.

Visão Geral

Tipo Pergunta que responde
Load Test O sistema aguenta a carga esperada?
Stress Test Onde está o limite? O que acontece além dele?
Soak Test O sistema é estável por longos períodos?
Spike Test O sistema aguenta picos repentinos?
Scalability Test O sistema escala de forma linear?
Configuration Test Qual configuração é melhor?

Load Test (Teste de Carga)

O que é

Simula a carga esperada em produção para validar que o sistema atende aos requisitos de performance.

Quando usar

  • Antes de releases importantes
  • Após mudanças significativas
  • Para validar SLOs
  • Para estabelecer baseline

Perfil típico

Usuários
    │
100 │          ┌──────────────────────┐
    │         ╱                        ╲
    │        ╱                          ╲
  0 │───────╱                            ╲───────
    └─────────────────────────────────────────────
         Ramp   │    Steady State    │   Ramp
         Up     │     (15-60 min)    │   Down

Métricas importantes

  • Latência (p50, p95, p99)
  • Throughput
  • Taxa de erro
  • Uso de recursos

Exemplo de resultado

Load Test - 1000 usuários por 30 minutos
✓ Latência p95: 180ms (SLO: < 200ms)
✓ Taxa de erro: 0.05% (SLO: < 0.1%)
✓ Throughput: 5.000 RPS (esperado: 4.500 RPS)

Stress Test (Teste de Stress)

O que é

Aumenta carga progressivamente além do esperado para encontrar o ponto de ruptura.

Quando usar

  • Para descobrir limites reais
  • Para entender como o sistema falha
  • Para capacity planning
  • Para identificar gargalos

Perfil típico

Usuários
    │
    │                              ╱
    │                            ╱
500 │                          ╱ ← Ponto de ruptura
    │                        ╱
    │                      ╱
    │                    ╱
100 │──────────────────╱
    │                 ╱
  0 │────────────────╱
    └─────────────────────────────────────────────
         Aumenta progressivamente até quebrar

Métricas importantes

  • Ponto de saturação
  • Comportamento sob saturação
  • Recuperação após sobrecarga
  • Primeiros sintomas de degradação

Exemplo de resultado

Stress Test - Aumentando até falha
✓ Performance estável até 3.000 usuários
⚠ Degradação começa em 3.500 usuários (latência 2x)
✗ Sistema falha com 4.200 usuários
→ Capacidade segura: ~3.000 usuários

Soak Test (Endurance Test)

O que é

Mantém carga moderada por longos períodos para identificar problemas que só aparecem com o tempo.

Quando usar

  • Para detectar memory leaks
  • Para identificar degradação gradual
  • Para validar estabilidade
  • Antes de grandes eventos prolongados

Perfil típico

Usuários
    │
100 │    ┌────────────────────────────────────┐
    │   ╱                                      ╲
  0 │──╱                                        ╲──
    └─────────────────────────────────────────────
              4-24 horas (ou mais)

Métricas importantes

  • Uso de memória ao longo do tempo
  • Latência ao longo do tempo
  • Conexões acumuladas
  • Recursos não liberados

Exemplo de resultado

Soak Test - 500 usuários por 12 horas
✓ Latência estável (variação < 5%)
⚠ Memória cresceu de 2GB para 3.5GB
✗ Memory leak detectado: ~125MB/hora
→ Investigar leak antes de produção

Spike Test (Teste de Pico)

O que é

Simula aumentos repentinos e extremos de carga para validar comportamento sob picos.

Quando usar

  • Para simular eventos virais
  • Para validar autoscaling
  • Para testar circuit breakers
  • Antes de campanhas de marketing

Perfil típico

Usuários
    │
    │        ┌──┐
    │        │  │        ┌──┐
500 │        │  │        │  │
    │        │  │        │  │
    │   ┌────┘  └────────┘  └────┐
100 │───┘                        └───
    │
  0 │
    └─────────────────────────────────
            Picos súbitos

Métricas importantes

  • Tempo de reação do autoscaling
  • Erros durante o pico
  • Tempo de recuperação
  • Comportamento de fallback

Exemplo de resultado

Spike Test - 10x tráfego instantâneo
✓ Sistema absorveu pico sem falha
⚠ Latência subiu para 800ms durante pico (normal: 100ms)
✓ Recuperação em 45 segundos após pico
⚠ Autoscaling demorou 90 segundos para reagir

Scalability Test

O que é

Testa se adicionar recursos resulta em aumento proporcional de capacidade.

Quando usar

  • Para validar arquitetura
  • Para capacity planning
  • Para identificar gargalos de escalabilidade
  • Antes de investimentos em infra

Perfil típico

Throughput
    │
    │                    ╱ ← Ideal (linear)
    │                  ╱╱
    │                ╱╱
    │              ╱╱   ← Real
    │            ╱╱
    │          ╱╱
    │        ╱╱
    │      ╱╱
    └─────────────────────────
         Recursos (instâncias)

Métricas importantes

  • Throughput por instância
  • Eficiência de escala
  • Overhead de coordenação
  • Ponto de retornos decrescentes

Exemplo de resultado

Scalability Test
1 instância:  1.000 RPS
2 instâncias: 1.900 RPS (95% eficiência)
4 instâncias: 3.600 RPS (90% eficiência)
8 instâncias: 6.400 RPS (80% eficiência)
→ Contenção começa a impactar com >4 instâncias

Configuration Test

O que é

Compara performance sob diferentes configurações para identificar a ideal.

Quando usar

  • Para otimizar settings
  • Para comparar tecnologias
  • Para validar tuning
  • Para escolher infra

Perfil típico

Múltiplos testes idênticos com configurações diferentes.

Exemplo de resultado

Configuration Test - Pool de conexões

Pool size: 10
  Throughput: 1.000 RPS, Latência p95: 150ms

Pool size: 50
  Throughput: 2.500 RPS, Latência p95: 80ms ← Melhor

Pool size: 100
  Throughput: 2.400 RPS, Latência p95: 90ms

→ Pool size ideal: ~50 conexões

Escolhendo o Teste Certo

Árvore de decisão

Qual pergunta você quer responder?
│
├─ "Aguenta carga normal?" → Load Test
│
├─ "Qual o limite?" → Stress Test
│
├─ "É estável por horas?" → Soak Test
│
├─ "Aguenta picos?" → Spike Test
│
├─ "Escala linearmente?" → Scalability Test
│
└─ "Qual config é melhor?" → Configuration Test

Combinações comuns

Antes de um release:

  1. Load Test (valida carga esperada)
  2. Stress Test (conhece limites)

Antes de Black Friday:

  1. Load Test (baseline)
  2. Spike Test (simula picos)
  3. Soak Test (estabilidade durante evento)

Após otimização:

  1. Configuration Test (compara antes/depois)
  2. Load Test (valida melhoria)

Conclusão

Cada tipo de teste responde perguntas específicas:

Se você quer saber... Use...
Se atende requisitos Load Test
Onde está o limite Stress Test
Se é estável no tempo Soak Test
Se aguenta picos Spike Test
Se escala bem Scalability Test
Qual config é melhor Configuration Test

Não existe "teste de performance genérico". Escolha conscientemente baseado no que você precisa aprender.

Um teste de performance sem objetivo claro é apenas exercício de ferramentas.

testesload teststress testmetodologia
Compartilhar:
Read in English

Quer entender os limites da sua plataforma?

Entre em contato para uma avaliação de performance.

Fale Conosco