CLI на Go для нагрузочного тестирования HTTP(S) с отображением результатов в реальном времени в терминале и веб-интерфейсе; для запросов используется fasthttp.
hatoo/oha
Консольный генератор HTTP-нагрузки на Rust, вдохновлённый rakyll/hey, с интерактивным терминальным интерфейсом в реальном времени.
- Звёзды
- 10,629
- Форки
- 306
- Открытые issues
- 59
- Последний коммит
- 3 дня назад
Что это?
oha — консольная утилита для отправки HTTP-нагрузки на веб-приложение с отображением результатов в интерактивном терминальном интерфейсе в реальном времени. Она создана по образцу rakyll/hey, и её параметры следуют соглашениям hey, но есть и отличия: например, флаг -q задаёт общее число запросов в секунду, а не число запросов на каждый worker.
Утилита поддерживает HTTP/1.1, HTTP/2 (с параллельными потоками в одном соединении) и экспериментальный HTTP/3. Она позволяет задавать частоту запросов, шаблоны всплесков и длительность теста, а также генерировать случайные URL по регулярному выражению или считывать список URL из файла. Коррекция задержек помогает избежать проблемы согласованного пропуска (coordinated omission). Результаты можно выводить в виде обычного текста, JSON, CSV или отключить вывод; успешные запросы можно записывать в базу данных SQLite.
oha создана на базе tokio и ratatui и также поддерживает настройку TLS (rustls или native-tls), клиентские сертификаты, подпись AWS SigV4, прокси, Unix-сокеты и VSOCK. Готовые бинарные файлы доступны через Cargo, Homebrew, Arch Linux, winget и Docker.
Ключевые возможности
- 01Интерактивный терминальный интерфейс показывает пропускную способность и задержки во время теста.
- 02Поддержка HTTP/1.1, HTTP/2 и экспериментального HTTP/3.
- 03Ограничение частоты запросов по QPS, настройка всплесков нагрузки и запуск на заданное время.
- 04Генерация случайных URL по регулярному выражению или чтение списка URL из файла.
- 05Вывод в виде текста, JSON, CSV или отключение вывода; схема JSON документирована.
- 06Коррекция задержек, позволяющая избежать согласованного пропуска (coordinated omission).
- 07Настройка TLS, клиентские сертификаты, прокси и подпись AWS SigV4.
Сценарии использования
- Нагрузочное тестирование веб-сервиса перед релизом, чтобы проверить его работу при высокой параллельной нагрузке.
- Сравнение производительности HTTP/1.1 и HTTP/2 для конечной точки.
- Повторное использование URL из журнала доступа для создания реалистичной смеси трафика.
- Быстрый запуск бенчмарков в CI или скриптах с выводом в JSON или CSV.
Быстрый старт
- 1
Установите oha с помощью Cargo (требуются Rust, make и cmake).
cargo install oha - 2
Запустите oha для целевого URL, используя параметры из раздела Usage в README.
Что важно знать
- Для сборки из исходного кода с помощью Cargo необходимо установить make и cmake.
- Функция HTTP/3 экспериментальная и использует rustls для TLS.
- В README перечислены только протестированные платформы (Linux, Windows 10, macOS); о поддержке других платформ не сообщается.
В подборках
Темы
Частые вопросы
- Что такое oha?
- Консольный генератор HTTP-нагрузки на Rust, вдохновлённый rakyll/hey, с интерактивным терминальным интерфейсом в реальном времени. oha — консольная утилита для отправки HTTP-нагрузки на веб-приложение с отображением результатов в интерактивном терминальном интерфейсе в реальном времени. Она создана по образцу rakyll/hey, и её параметры следуют соглашениям hey, но есть и отличия: например, флаг -q задаёт общее число запросов в секунду, а не число запросов на каждый worker.
- oha можно использовать бесплатно? Какая у него лицензия?
- oha распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- oha всё ещё поддерживается?
- Активно поддерживается. Последний коммит в oha — 22 окт. 2026 г..
- Для чего можно использовать oha?
- Нагрузочное тестирование веб-сервиса перед релизом, чтобы проверить его работу при высокой параллельной нагрузке. Сравнение производительности HTTP/1.1 и HTTP/2 для конечной точки. Повторное использование URL из журнала доступа для создания реалистичной смеси трафика. Быстрый запуск бенчмарков в CI или скриптах с выводом в JSON или CSV.
- Как установить oha?
- Установите oha с помощью Cargo (требуются Rust, make и cmake).: cargo install oha Запустите oha для целевого URL, используя параметры из раздела Usage в README.
- Где скачать oha?
- Исходный код и инструкции по установке — на GitHub: https://github.com/hatoo/oha
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Инструмент с открытым исходным кодом для нагрузочного тестирования: сценарии для HTTP и других протоколов задаются обычным кодом на Python, а результаты отображаются в веб-интерфейсе.
Кроссплатформенный CLI-инструмент на Go для бенчмаркинга и нагрузочного тестирования HTTP(S), использующий fasthttp для высокой пропускной способности.
CLI-инструмент для бенчмаркинга команд со статистическим анализом, прогревочными запусками и экспортом в CSV, JSON, Markdown и AsciiDoc.
Приложение с открытым исходным кодом на Java для нагрузочного тестирования и оценки производительности веб-приложений и других сервисов.
Подборка инструментов для бенчмаркинга HTTP(S), нагрузочного тестирования, отладки и работы с REST API с кратким описанием каждого.