Repolode
six-ddc

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. 1

    Instale o plow com Go

    go install github.com/six-ddc/plow@latest
  2. 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