Glossário · Performance
Teste de carga
Em inglês: Load testing
Também chamado de: load test, testes de carga, teste de carga de software
Definição
Teste de performance que submete o sistema ao tráfego real esperado para verificar tempos de resposta, taxa de erros e throughput contra metas acordadas.
O teste de carga (load testing) coloca o sistema sob o tráfego que você realmente espera, normalmente o pico normal de uso, e mede como ele se comporta: percentis de latência, taxa de erros, throughput e uso de recursos. A pergunta que ele responde é “o sistema atinge as metas de performance com a carga que planejamos?”. Não se trata de quebrar o sistema; isso é teste de estresse.
Exemplo (k6)
import http from 'k6/http';
import { check, sleep } from 'k6';
export const options = {
stages: [
{ duration: '2m', target: 100 }, // ramp up to 100 virtual users
{ duration: '10m', target: 100 }, // hold at expected peak
{ duration: '1m', target: 0 }, // ramp down
],
thresholds: {
http_req_duration: ['p(95)<500', 'p(99)<1200'],
http_req_failed: ['rate<0.01'],
},
};
export default function () {
const res = http.get('https://staging.example.com/api/products');
check(res, { 'status is 200': (r) => r.status === 200 });
sleep(1); // think time between iterations
}
Se qualquer um dos thresholds for violado, o k6 termina com código de saída diferente de zero, então o mesmo script pode funcionar como gate no CI.
Carga, estresse, soak e spike
| Tipo | Perfil de carga | Pergunta que responde |
|---|---|---|
| Carga | Pico esperado, mantido estável | Atingimos as metas no pico normal? |
| Estresse | Crescente, além do esperado | Onde e como quebra, e ele se recupera? |
| Soak | Carga normal por horas | Degrada com o tempo (vazamentos, esgotamento de pool)? |
| Spike | Salto repentino, depois queda | Sobrevive a um pico súbito e volta a escalar para baixo? |
Como fazer direito
- Modele o tráfego real. Use a combinação de endpoints, tamanhos de payload e think times que você vê no analytics de produção, e não uma única URL martelada em loop.
- Use um ambiente parecido com produção. Resultados de uma máquina de staging subdimensionada falam sobre aquela máquina, não sobre produção.
- Avalie por percentis, não por médias. A média esconde a cauda lenta, que é justamente do que os usuários reclamam.
- Observe também o lado do servidor. CPU, memória, conexões com o banco de dados e profundidade das filas explicam por que a latência mudou.
- Combine as metas antes. Sem um objetivo explícito, como “p95 abaixo de 500 ms a 200 requisições por segundo”, o teste de carga produz números, mas nenhum veredito.