Siege é um utilitário de teste de carga e benchmarking HTTP/HTTPS projetado para testar servidores web sob alta demanda concorrente.
Uso Básico
# Benchmark com 10 conexões simultâneas durante 1 minuto
siege -c 10 -t 1m https://example.com/
Opções Comuns de Linha de Comando
| Opção | Flag | Descrição |
|---|---|---|
-c N |
--concurrent=N |
Número de usuários simultâneos simulados |
-t MINm |
--time=MINm |
Duração total do benchmark (ex.: 30s, 5m, 1h) |
-r N |
--reps=N |
Número de requisições por usuário antes de terminar |
-b |
--benchmark |
Modo benchmark (sem atraso entre requisições) |
-i |
--internet |
Acessar URLs do arquivo em ordem aleatória |
-f <file> |
--file=<file> |
Ler lista de URLs alvo a partir de um arquivo |
-H <hdr> |
--header=<hdr> |
Adicionar cabeçalho HTTP personalizado às requisições |
Testando com Arquivo de Múltiplas URLs
Crie o arquivo urls.txt:
https://example.com/
https://example.com/api/items
https://example.com/about
Executar simulação aleatória sobre as URLs:
siege -i -c 25 -t 2m -f urls.txt
Explicação das Métricas de Saída
- Availability: Porcentagem de requisições atendidas com sucesso (deve ser 100%).
- Elapsed time: Duração total da execução do teste.
- Transaction rate: Requisições atendidas por segundo (RPS).
- Throughput: Megabytes de dados transferidos por segundo.
- Concurrency: Número médio de conexões concorrentes ativas.