Ferramenta multiplataforma de linha de comando para benchmark e teste de carga HTTP(S), escrita em Go e baseada em fasthttp para processar muitas requisições.
six-ddc/plow
CLI de teste de carga HTTP(S) escrito em Go, com visualização em tempo real no terminal e gráficos na web, usando fasthttp para as requisições.
- Estrelas
- 4,515
- Forks
- 154
- Issues abertas
- 20
- Último commit
- há 5 dias
O que é?
Plow é uma ferramenta de linha de comando para benchmarking de HTTP(S), escrita em Go. Ela envia requisições com um número definido de conexões simultâneas e registra estatísticas de latência, histogramas e percentis durante o teste, exibindo os dados no terminal e em uma página web atualizada em tempo real. O teste pode rodar por um período fixo, por um número determinado de requisições ou até ser interrompido com Ctrl-C.
Plow usa a biblioteca cliente fasthttp em vez do pacote padrão net/http do Go. Seus algoritmos de streaming para histogramas e quantis foram projetados para manter baixo o consumo de memória e CPU durante o benchmark. O rastreamento opcional divide o tempo das requisições em etapas de DNS, conexão, TLS, escrita, espera e leitura.
As requisições podem ser personalizadas com métodos, cabeçalhos, corpos (inclusive arquivos, com opção de streaming) e certificados TLS de cliente. A ferramenta também oferece controle de taxa, aumento gradual de carga, suporte a proxies SOCKS5 e HTTP, sockets de domínio Unix e saída em JSON.
Recursos principais
- 01Estatísticas de latência, histogramas e percentis em tempo real no terminal e em uma interface web.
- 02Modos de teste com concorrência fixa, número fixo de requisições ou duração fixa.
- 03Rastreamento da latência por etapa: DNS, conexão, TLS, escrita, TTFB e leitura.
- 04Métodos e cabeçalhos personalizados, corpos de requisição provenientes de arquivos e certificados TLS de cliente.
- 05Controle de taxa, aumento gradual de carga, suporte a proxies SOCKS5 e HTTP e saída em JSON.
Casos de uso
- Testar a carga de uma API HTTP ou serviço web antes de uma versão ser lançada.
- Comparar a latência de resposta entre endpoints ou configurações de servidor.
- Diagnosticar qual etapa da requisição (DNS, conexão, TTFB) mais contribui para respostas lentas.
Início rápido
- 1
Instale o plow com Go
go install github.com/six-ddc/plow@latest - 2
Execute um teste de carga em uma URL com 20 conexões
plow http://127.0.0.1:8080/ -c 20 -n 10000 -d 10s
Antes de usar
- Só oferece suporte a testes de carga HTTP(S), não a outros protocolos.
Em coleções
Tópicos
Perguntas frequentes
- O que é plow?
- CLI de teste de carga HTTP(S) escrito em Go, com visualização em tempo real no terminal e gráficos na web, usando fasthttp para as requisições. Plow é uma ferramenta de linha de comando para benchmarking de HTTP(S), escrita em Go. Ela envia requisições com um número definido de conexões simultâneas e registra estatísticas de latência, histogramas e percentis durante o teste, exibindo os dados no terminal e em uma página web atualizada em tempo real. O teste pode rodar por um período fixo, por um número determinado de requisições ou até ser interrompido com Ctrl-C.
- plow é gratuito? Qual é a licença?
- plow é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
- plow ainda é mantido?
- Manutenção ativa. O último commit de plow foi em 17 de out. de 2026.
- Para que posso usar plow?
- Testar a carga de uma API HTTP ou serviço web antes de uma versão ser lançada. Comparar a latência de resposta entre endpoints ou configurações de servidor. Diagnosticar qual etapa da requisição (DNS, conexão, TTFB) mais contribui para respostas lentas.
- Como instalar plow?
- Instale o plow com Go: go install github.com/six-ddc/plow@latest Execute um teste de carga em uma URL com 20 conexões: plow http://127.0.0.1:8080/ -c 20 -n 10000 -d 10s
- Onde consigo plow?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/six-ddc/plow
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Aplicativo Java de código aberto para testar carga e medir o desempenho de aplicações web e outros serviços.
Ferramenta de linha de comando para comparar o desempenho de comandos, com análise estatística, execuções de aquecimento e exportação para CSV, JSON, Markdown e AsciiDoc.
Uma biblioteca JavaScript de benchmarking simples, pequena e sem dependências, compatível com vários runtimes JavaScript.
Framework personalizável para avaliar LLMs, VLMs e modelos de AIGC em benchmarks, testar o desempenho de inferência sob carga e visualizar resultados em dashboards.
Framework web HTTP de alto desempenho para Go, com uma API semelhante à do Martini, feito para REST APIs, aplicações web e microsserviços.