Кроссплатформенный CLI-инструмент на Go для бенчмаркинга и нагрузочного тестирования HTTP(S), использующий fasthttp для высокой пропускной способности.
bojand/ghz
CLI-инструмент для бенчмаркинга и нагрузочного тестирования gRPC-сервисов с настройкой параллелизма, ограничений частоты запросов и форматов вывода.
- Звёзды
- 3,359
- Форки
- 284
- Открытые issues
- 101
- Последний коммит
- 7 дней назад
Что это?
ghz — CLI-инструмент и Go-пакет для оценки производительности gRPC-сервисов. Укажите хост и полное имя метода, передайте файл .proto или скомпилированный protoset — инструмент отправит запросы и соберёт данные о задержках и пропускной способности.
Нагрузку можно задавать несколькими способами: постоянной частотой запросов, фиксированным числом параллельных обработчиков или пошаговым и линейным расписанием, постепенно увеличивающим RPS либо параллелизм. Тесты можно ограничить числом запросов или временем выполнения; поддерживаются потоковые вызовы с настройкой интервалов между сообщениями и длительности потока. Настраиваются TLS, клиентские сертификаты, метаданные и сжатие gzip.
Результаты можно вывести в виде сводки, форматированного текста, JSON, CSV, HTML или строк в формате InfluxDB. Параметры теста также можно сохранить в конфигурационном файле JSON или TOML.
Ключевые возможности
- 01Расписания нагрузки с постоянной частотой, пошаговым или линейным увеличением RPS и параллелизма.
- 02Поддержка unary- и потоковых вызовов gRPC с файлами proto или protoset.
- 03Настройки TLS, клиентских сертификатов, пользовательского authority и сжатия gzip.
- 04Вывод в формате сводки, форматированного текста, JSON, CSV, HTML или InfluxDB.
- 05Можно использовать как CLI-инструмент или импортировать как Go-пакет.
Сценарии использования
- Нагрузочное тестирование gRPC-микросервиса перед выпуском.
- Определение частоты запросов, при которой задержки сервиса начинают расти.
- Сравнение производительности разных версий сервиса в CI-пайплайне.
- Бенчмаркинг gRPC-эндпоинтов с включённым TLS или сжатием.
Быстрый старт
- 1
Установите с помощью Homebrew
brew install ghz - 2
Или установите с помощью Go (версии 1.23 или новее)
go install github.com/bojand/ghz/cmd/ghz@latest - 3
Запустите нагрузочный тест для gRPC-сервера, указав proto-файл и хост
Что важно знать
- Документация размещена на внешнем сайте ghz.sh, а не в репозитории.
В подборках
Темы
Частые вопросы
- Что такое ghz?
- CLI-инструмент для бенчмаркинга и нагрузочного тестирования gRPC-сервисов с настройкой параллелизма, ограничений частоты запросов и форматов вывода. ghz — CLI-инструмент и Go-пакет для оценки производительности gRPC-сервисов. Укажите хост и полное имя метода, передайте файл .proto или скомпилированный protoset — инструмент отправит запросы и соберёт данные о задержках и пропускной способности.
- ghz можно использовать бесплатно? Какая у него лицензия?
- ghz распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- ghz всё ещё поддерживается?
- Активно поддерживается. Последний коммит в ghz — 1 нояб. 2026 г..
- Для чего можно использовать ghz?
- Нагрузочное тестирование gRPC-микросервиса перед выпуском. Определение частоты запросов, при которой задержки сервиса начинают расти. Сравнение производительности разных версий сервиса в CI-пайплайне. Бенчмаркинг gRPC-эндпоинтов с включённым TLS или сжатием.
- Как установить ghz?
- Установите с помощью Homebrew: brew install ghz Или установите с помощью Go (версии 1.23 или новее): go install github.com/bojand/ghz/cmd/ghz@latest Запустите нагрузочный тест для gRPC-сервера, указав proto-файл и хост
- Где скачать ghz?
- Исходный код и инструкции по установке — на GitHub: https://github.com/bojand/ghz
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Приложение с открытым исходным кодом на Java для нагрузочного тестирования и оценки производительности веб-приложений и других сервисов.
Фреймворк для макробенчмаркинга Elasticsearch: разворачивает кластеры, запускает тестовые прогоны и сравнивает результаты.
CLI-инструмент и библиотека Go для нагрузочного тестирования HTTP: отправляют запросы с постоянной частотой и показывают статистику задержек.
CLI-инструмент для вызова gRPC-серверов: принимает JSON, как curl, и находит схемы через server reflection или proto-файлы.
Инструмент с открытым исходным кодом для нагрузочного тестирования: тесты производительности пишут на JavaScript и запускают из Go-бинарника.