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
| Ferramenta | Melhor para | Destaques |
|---|---|---|
| ab | Testes simples e rápidos | Muito leve, já vem em pacotes Apache |
| wrk | Testes avançados | Suporta RPS fixo, scripts Lua, estatísticas de latência detalhadas |