Кроссплатформенный CLI-инструмент на Go для бенчмаркинга и нагрузочного тестирования HTTP(S), использующий fasthttp для высокой пропускной способности.
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
Установите plow с помощью Go
go install github.com/six-ddc/plow@latest - 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 обновляется ежедневно.
Похожие проекты
Приложение с открытым исходным кодом на Java для нагрузочного тестирования и оценки производительности веб-приложений и других сервисов.
CLI-инструмент для бенчмаркинга команд со статистическим анализом, прогревочными запусками и экспортом в CSV, JSON, Markdown и AsciiDoc.
Простая, компактная библиотека для бенчмаркинга JavaScript без зависимостей, работающая в разных JavaScript-средах выполнения.
Настраиваемый фреймворк для оценки LLM, VLM и AIGC-моделей на бенчмарках, нагрузочного тестирования производительности инференса и просмотра результатов на дашборде.
Высокопроизводительный HTTP-фреймворк для Go с API в стиле Martini, предназначенный для REST API, веб-приложений и микросервисов.