Pular para o conteúdo
Tecnologia

Performance tests detectam gargalos antes de produção. Load testing, stress testing, benchmarking. Essenciais para APIs de alta carga.

Conceitos Principais

Load Testing

Simula carga esperada. 1000 users simultâneos. Mede latency, throughput, errors. Detecta gargalos.

Stress Testing

Aumenta carga até quebrar. Encontra limite máximo. Como sistema falha (graceful ou crash).

Benchmarking

Compara performance de código. Array.map vs for loop. Otimiza hot paths.

Métricas

Latency (p50, p95, p99). Throughput (requests/s). Error rate. CPU/memory usage.

Passo a Passo

  1. Install k6: brew install k6. Ou Docker. Write test em JS: import http from "k6/http"; export default function() { http.get("http://localhost:3000"); }
  2. Run Load Test: k6 run --vus 100 --duration 30s script.js. 100 virtual users, 30 segundos. Veja p95 latency.
  3. Stress Test: k6 run --stages [ { duration: "2m", target: 100 }, { duration: "5m", target: 1000 }, { duration: "2m", target: 0 } ] script.js. Rampa até 1000.
  4. Analyze Results: k6 report HTML. Identifique: high latency endpoints, error spikes, memory leaks (metrics trend up).
  5. CI Integration: k6 cloud ou self-hosted. Run em staging. Alert se p95 > 500ms. Block deploy se degrada.

Boas Praticas

Recomendacoes

• Test realistic scenarios

• Use staging com dados reais

• Monitor resources (CPU, mem)

• Set performance budgets

• Run regularmente (não apenas pré-launch)

Erros Comuns

Evite estes erros

• Testar apenas localhost

• Load test em produção (não faça isso)

• Ignorar p95/p99 (média engana)

• Não monitorar resources

• Performance tests apenas uma vez

Checklist

  • k6 ou similar instalado
  • Load test script criado
  • Stress test executado
  • Performance budgets definidos
  • CI rodando perf tests
  • Monitoring em staging