Skip to main content

ab e wrk | Solyd One

  • ab e wrk | Solyd One

📌 Apache Bench (ab)

Ferramenta simples para testes de carga HTTP.

Sintaxe básica

ab [opções] http://host/rota/

Opções principais

  • -n <N> → número total de requisições
  • -c <N> → número de requisições concorrentes
  • -t <seg> → duração do teste (tempo limite)
  • -k → ativa Keep-Alive
  • -v 2 → modo verboso (mostra códigos HTTP recebidos)
  • -p arquivo → envia corpo de requisição (ex.: JSON)
  • -T tipo → define o Content-Type do corpo (ex.: application/json)

Exemplos

# 1000 requisições com 50 em paralelo
ab -n 1000 -c 50 http://localhost/api/

# POST com JSON
echo '{"user":"test"}' > body.json
ab -n 500 -c 20 -p body.json -T 'application/json' http://localhost/api/login

# Ver respostas diferentes de 200
ab -n 100 -c 10 -v 2 http://localhost/

📌 WRK

Ferramenta moderna e mais avançada para benchmark de HTTP.

Sintaxe básica

wrk [opções] <URL>

Opções principais

  • -t <N> → número de threads
  • -c <N> → conexões simultâneas
  • -d <tempo> → duração do teste (10s, 2m)
  • --latency → mostra estatísticas de latência (p50, p95, p99)
  • -R <RPS> → taxa fixa de requisições por segundo (útil para stress test)
  • -s script.lua → usar script em Lua (para POST, headers, etc.)

Exemplos

# 60s de teste, 4 threads, 200 conexões
wrk -t4 -c200 -d160s --latency http://localhost/api/

# POST com JSON via script Lua
cat > post.lua <<'EOF'
wrk.method = "POST"
wrk.body = '{"user":"test"}'
wrk.headers["Content-Type"] = "application/json"
EOF

wrk -t4 -c100 -d30s -R 500 -s post.lua http://localhost/api/login

📊 Diferenças rápidas

FerramentaMelhor paraDestaques
abTestes simples e rápidosMuito leve, já vem em pacotes Apache
wrkTestes avançadosSuporta RPS fixo, scripts Lua, estatísticas de latência detalhadas