Repolode
six-ddc

six-ddc/plow

CLI на Go для нагрузочного тестирования HTTP(S) с отображением результатов в реальном времени в терминале и веб-интерфейсе; для запросов используется fasthttp.

Звёзды
4,515
Форки
154
Открытые issues
20
Последний коммит
5 дней назад

Что это?

Plow — инструмент командной строки на Go для нагрузочного тестирования HTTP(S). Он отправляет запросы с заданным числом одновременных подключений и во время теста собирает статистику задержек, гистограммы и перцентили, показывая их в терминале и на веб-странице в реальном времени. Тест можно запускать на заданное время, на заданное число запросов или до прерывания с помощью Ctrl-C.

Вместо стандартного пакета Go net/http Plow использует клиентскую библиотеку fasthttp. Потоковые алгоритмы для гистограмм и квантилей рассчитаны на то, чтобы снижать нагрузку на память и CPU во время тестирования. При необходимости трассировка разбивает время запроса на этапы DNS, подключения, TLS, записи, ожидания и чтения.

Запросы можно настраивать с помощью методов, заголовков, тел запросов (в том числе из файлов и с потоковой передачей) и клиентских TLS-сертификатов. Инструмент также поддерживает ограничение частоты запросов, постепенное увеличение нагрузки, SOCKS5- и HTTP-прокси, Unix domain sockets и вывод в JSON.

Ключевые возможности

  • 01Статистика задержек, гистограммы и перцентили в реальном времени в терминале и веб-интерфейсе.
  • 02Режимы тестирования с заданным числом одновременных подключений, числом запросов или длительностью.
  • 03Трассировка задержек на этапах DNS, подключения, TLS, записи, TTFB и чтения.
  • 04Настраиваемые методы и заголовки, тела запросов из файлов и клиентские TLS-сертификаты.
  • 05Ограничение частоты запросов, постепенное увеличение нагрузки, поддержка SOCKS5- и HTTP-прокси, вывод в JSON.

Сценарии использования

  • Нагрузочное тестирование HTTP API или веб-сервиса перед выпуском.
  • Сравнение задержек ответов для разных эндпоинтов или конфигураций серверов.
  • Выявление этапа запроса (DNS, подключение, TTFB), который сильнее всего замедляет ответы.

Быстрый старт

  1. 1

    Установите plow с помощью Go

    go install github.com/six-ddc/plow@latest
  2. 2

    Запустите нагрузочный тест URL с 20 подключениями

    plow http://127.0.0.1:8080/ -c 20 -n 10000 -d 10s

Что важно знать

  • Поддерживается нагрузочное тестирование только по HTTP(S), другие протоколы не поддерживаются.

Темы

Частые вопросы

Что такое plow?
CLI на Go для нагрузочного тестирования HTTP(S) с отображением результатов в реальном времени в терминале и веб-интерфейсе; для запросов используется fasthttp. Plow — инструмент командной строки на Go для нагрузочного тестирования HTTP(S). Он отправляет запросы с заданным числом одновременных подключений и во время теста собирает статистику задержек, гистограммы и перцентили, показывая их в терминале и на веб-странице в реальном времени. Тест можно запускать на заданное время, на заданное число запросов или до прерывания с помощью Ctrl-C.
plow можно использовать бесплатно? Какая у него лицензия?
plow распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
plow всё ещё поддерживается?
Активно поддерживается. Последний коммит в plow — 17 окт. 2026 г..
Для чего можно использовать plow?
Нагрузочное тестирование HTTP API или веб-сервиса перед выпуском. Сравнение задержек ответов для разных эндпоинтов или конфигураций серверов. Выявление этапа запроса (DNS, подключение, TTFB), который сильнее всего замедляет ответы.
Как установить plow?
Установите plow с помощью Go: go install github.com/six-ddc/plow@latest Запустите нагрузочный тест URL с 20 подключениями: plow http://127.0.0.1:8080/ -c 20 -n 10000 -d 10s
Где скачать plow?
Исходный код и инструкции по установке — на GitHub: https://github.com/six-ddc/plow

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты