Herramienta multiplataforma de línea de comandos para pruebas de rendimiento y carga de HTTP(S), escrita en Go y basada en fasthttp para procesar muchas solicitudes.
bojand/ghz
Herramienta de línea de comandos para comparar el rendimiento y probar la carga de servicios gRPC, con concurrencia, límites de tasa y formatos de salida configurables.
- Estrellas
- 3,359
- Forks
- 284
- Issues abiertos
- 101
- Último commit
- hace 6 días
¿Qué es?
ghz es una herramienta de línea de comandos y un paquete de Go para medir el rendimiento de servicios gRPC. Indica un host y un método completo, y proporciona un archivo .proto o un protoset compilado. La herramienta envía solicitudes y registra la latencia y el rendimiento.
La carga se puede configurar de varias formas: una tasa constante de solicitudes, un número fijo de workers concurrentes o cronogramas escalonados y lineales que aumentan gradualmente las RPS o la concurrencia. Las pruebas se pueden limitar por cantidad de solicitudes o duración, y se admiten llamadas de streaming con opciones para definir los intervalos entre mensajes y la duración de los streams. Se pueden configurar TLS, certificados de cliente, metadatos y compresión gzip.
Los resultados se pueden mostrar como resumen, texto con formato, JSON, CSV, HTML o en formato de líneas de InfluxDB. La configuración de las pruebas también se puede guardar en un archivo de configuración JSON o TOML.
Funciones clave
- 01Cronogramas de carga con tasa constante o incrementos escalonados o lineales de RPS y concurrencia.
- 02Admite llamadas gRPC unarias y de streaming con archivos proto o protosets.
- 03Opciones de TLS, certificados de cliente, autoridad personalizada y compresión gzip.
- 04Resultados en formato de resumen, texto con formato, JSON, CSV, HTML o InfluxDB.
- 05Se puede usar como CLI o importar como paquete de Go.
Casos de uso
- Probar la carga de un microservicio gRPC antes de una versión nueva.
- Encontrar la tasa de solicitudes a partir de la cual la latencia de un servicio empieza a degradarse.
- Comparar el rendimiento entre versiones de un servicio en un pipeline de CI.
- Comparar el rendimiento de endpoints gRPC con TLS o con la compresión habilitada.
Inicio rápido
- 1
Instálalo con Homebrew
brew install ghz - 2
O instálalo con Go (1.23 o posterior)
go install github.com/bojand/ghz/cmd/ghz@latest - 3
Ejecuta una prueba de carga en un servidor gRPC con un archivo proto y un host
Antes de usarlo
- La documentación está alojada externamente en ghz.sh, no en el repositorio.
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es ghz?
- Herramienta de línea de comandos para comparar el rendimiento y probar la carga de servicios gRPC, con concurrencia, límites de tasa y formatos de salida configurables. ghz es una herramienta de línea de comandos y un paquete de Go para medir el rendimiento de servicios gRPC. Indica un host y un método completo, y proporciona un archivo .proto o un protoset compilado. La herramienta envía solicitudes y registra la latencia y el rendimiento.
- ¿ghz es gratuito? ¿Qué licencia tiene?
- ghz es open source bajo la licencia Apache-2.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿ghz sigue mantenido?
- Mantenimiento activo. El último commit de ghz fue el 1 nov 2026.
- ¿Para qué puedo usar ghz?
- Probar la carga de un microservicio gRPC antes de una versión nueva. Encontrar la tasa de solicitudes a partir de la cual la latencia de un servicio empieza a degradarse. Comparar el rendimiento entre versiones de un servicio en un pipeline de CI. Comparar el rendimiento de endpoints gRPC con TLS o con la compresión habilitada.
- ¿Cómo se instala ghz?
- Instálalo con Homebrew: brew install ghz O instálalo con Go (1.23 o posterior): go install github.com/bojand/ghz/cmd/ghz@latest Ejecuta una prueba de carga en un servidor gRPC con un archivo proto y un host
- ¿Dónde consigo ghz?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/bojand/ghz
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Aplicación Java de código abierto para hacer pruebas de carga y medir el rendimiento de aplicaciones web y otros servicios.
Framework de macrobenchmarking para Elasticsearch que configura clústeres, ejecuta pruebas de rendimiento y compara resultados.
Herramienta de línea de comandos y biblioteca Go para pruebas de carga HTTP que envía solicitudes a una tasa constante y muestra estadísticas de latencia.
Herramienta de línea de comandos para llamar a servidores gRPC, como curl pero con entradas JSON sobre gRPC y detección de esquemas mediante reflexión del servidor o archivos proto.
Herramienta open source de pruebas de carga: los tests de rendimiento se escriben en JavaScript y se ejecutan desde un binario de Go.