oha is an HTTP load generator that provides real-time terminal user interface visualization of load testing results.
The tool addresses the need to benchmark web applications under load while observing metrics as they accumulate. It sends configurable HTTP requests to a target application and displays live statistics through a terminal interface. Built in Rust and powered by the tokio async runtime, oha handles concurrent requests efficiently. The README notes that it was inspired by rakyll/hey but distinguishes itself through animated terminal visualization rather than text-only output.
Developers should choose oha for quick, interactive load testing when visual feedback during test execution is valuable. It suits scenarios where you want to watch response times, throughput, and error rates update in real time rather than waiting for a final report. The tool supports HTTP/1.1, HTTP/2, and experimental HTTP/3, along with optional VSOCK support for specialized networking scenarios. For users migrating from rakyll/hey, note that the query-per-second option works differently: oha sets an overall rate across all workers rather than per-worker. The project offers multiple installation paths including package managers for Linux, macOS, and Windows, as well as Docker containers and pre-built binaries.
Development activity shows consistent attention to performance optimization, with the project offering Profile-Guided Optimization builds and a faster code path when the terminal interface is disabled. The tool provides flexible output formats including text summaries, JSON with a defined schema, and CSV for detailed per-request analysis. Platform support is actively maintained across Linux, Windows, and macOS with testing on specific terminal emulators. The project accepts feature contributions such as VSOCK and HTTP/3 support, indicating openness to extending capabilities for specialized use cases.