oha – szybki generator obciążenia HTTP w Rust z TUI

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?

CechaKorzyść
Rust + TokioWysoka wydajność i bezpieczeństwo
TUICzytelna wizualizacja w terminalu
Open SourceMożliwość modyfikacji i integracji
Niskie zasobyIdealne do testów lokalnych i CI/CD
Eksport danychŁatwe raportowanie i analiza
Integracja z DockeremSzybkie 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 😉

About the author

Autor "BIELI" to zapalony entuzjasta otwartego oprogramowania, który dzieli się swoją pasją na blogu poznajlinuxa.pl. Jego wpisy są skarbnicą wiedzy na temat Linuxa, programowania oraz najnowszych trendów w świecie technologii. Autor "BIELI" wierzy w siłę społeczności Open Source i zawsze stara się inspirować swoich czytelników do eksplorowania i eksperymentowania z kodem.