Co to jest oha?
oha to lekki, szybki i estetyczny program do generowania obciążenia HTTP, napisany w Rust z użyciem Tokio i terminalowego interfejsu użytkownika (TUI) inspirowanego przez rakyll/hey. Pozwala na testowanie wydajności aplikacji webowych w czasie rzeczywistym, z dynamiczną wizualizacją wyników.
Działa lokalnie, jest open-source i idealnie nadaje się do testów serwerów, API, mikroserwisów i aplikacji webowych – szczególnie w środowisku Linuksa.

Co zawiera repozytorium?
Repozytorium oha zawiera:
- kod źródłowy w Rust (99.7%),
- wsparcie dla HTTP/1, HTTP/2 i eksperymentalnie HTTP/3,
- interfejs TUI z animacjami i statystykami,
- obsługę wielu opcji: nagłówki, metody, proxy, TLS, timeouty,
- eksport wyników do JSON, CSV, tekstu,
- wsparcie dla testów z plików URL, regexów, burstów i rate limitów,
- integrację z Dockerem i PGO (Profile-Guided Optimization).
Jak to działa?
oha pozwala na:
- wysłanie określonej liczby żądań (
-n), - równoległe połączenia (
-c), - ograniczenie zapytań na sekundę (
-q), - testy przez określony czas (
-z), - generowanie losowych URL-i (
--rand-regex-url), - czytanie URL-i z pliku (
--urls-from-file), - korekcję latencji (
--latency-correction), - wyłączenie keep-alive (
--disable-keepalive), - eksport wyników (
--output-format json/csv).
Przykład:
oha -n 1000 -c 100 -q 200 --latency-correction https://example.com
Jak zainstalować w Linuksie?
🔹 Przez Cargo:
cargo install oha
🔹 Z repozytorium Azlux (Debian/Ubuntu):
echo "deb [signed-by=/usr/share/keyrings/azlux-archive-keyring.gpg] http://packages.azlux.fr/debian/ stable main" | sudo tee /etc/apt/sources.list.d/azlux.list
sudo wget -O /usr/share/keyrings/azlux-archive-keyring.gpg https://azlux.fr/repo.gpg
sudo apt update
sudo apt install oha
🔹 Przez Docker:
docker run --rm -it --network=host hatoo/oha:latest https://example.com
Dlaczego warto używać oha w Linuksie?
| Cecha | Korzyść |
|---|---|
| Rust + Tokio | Wysoka wydajność i bezpieczeństwo |
| TUI | Czytelna wizualizacja w terminalu |
| Open Source | Możliwość modyfikacji i integracji |
| Niskie zasoby | Idealne do testów lokalnych i CI/CD |
| Eksport danych | Łatwe raportowanie i analiza |
| Integracja z Dockerem | Szybkie uruchamianie bez instalacji |
Dla programistów backendu, DevOps, testerów – oha to narzędzie, które pozwala szybko sprawdzić wydajność aplikacji webowej bez konieczności uruchamiania ciężkich frameworków.
Przykłady użycia
- Test API z 500 równoległymi połączeniami:
oha -n 5000 -c 500 https://api.example.com
- Test przez 30 sekund z ograniczeniem QPS:
oha -z 30s -q 100 https://example.com
- Test z losowymi URL-ami:
oha --rand-regex-url http://127.0.0.1/[a-z][a-z][0-9]
- Test z pliku URL-i:
oha --urls-from-file urls.txt
Podsumowanie
oha to szybkie, lekkie i estetyczne narzędzie do testowania wydajności aplikacji webowych. Napisane w Rust, działa świetnie na Linuksie i pozwala na:
- szybkie testy lokalne,
- integrację z CI/CD,
- analizę wydajności API,
- eksport wyników do raportów,
- wizualizację w terminalu.
Repozytorium: https://github.com/hatoo/oha
Uwaga!
Testowanie obciążenia aplikacji internetowych to dziedzina w fazie kontroli jakości i tworzenia/utrzymania oprogramowania. Nigdy nie używaj narzędzi Open Source w celach innych niżeli rozwój, edukacja i tworzenie lepszego świata Open Source! Świat Open Source wynagrodzi Tobie wyrozumiałość i zaangażowanie 😉