Repolode
hatoo

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

    Установите oha с помощью Cargo (требуются Rust, make и cmake).

    cargo install oha
  2. 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, а результаты отображаются в веб-интерфейсе.

28,2 тыс.+3 за неделю3,3 тыс.PythonMITОбновлён 10 часов назад