Repolode
hatoo

hatoo/oha

rakyll/heyに着想を得た、リアルタイムのターミナルUIを備えるRust製のコマンドラインHTTP負荷生成ツール。

スター
10,629
フォーク
306
未解決の Issue
59
最終コミット
3 日前

これは何?

ohaは、WebアプリケーションにHTTP負荷をかけ、その結果をリアルタイムのターミナルUIに表示するコマンドラインツールです。rakyll/heyをモデルにしており、オプションもheyの慣例に沿っていますが、いくつか違いがあります。たとえば-qフラグは、ワーカーごとではなく全体のQPSを指定します。

HTTP/1.1、接続ごとに並列ストリームを使うHTTP/2、実験的なHTTP/3に対応しています。リクエストレート、バーストパターン、実行時間を制御でき、正規表現からランダムなURLを生成したり、ファイルからURL一覧を読み込んだりできます。協調的オミッション問題を避けるためのレイテンシ補正にも対応しています。出力形式はプレーンテキスト、JSON、CSV、または出力を抑制するquietモードから選べ、成功したリクエストをSQLiteデータベースに書き込むこともできます。

tokioとratatuiを基盤とするohaは、TLSオプション(rustlsまたはnative-tls)、クライアント証明書、AWS SigV4署名、プロキシ、Unixソケット、VSOCKもサポートしています。Cargo、Homebrew、Arch Linux、winget、Docker経由でビルド済みバイナリを入手できます。

主な機能

  • 01テスト実行中にスループットとレイテンシをリアルタイムのターミナルUIに表示。
  • 02HTTP/1.1、HTTP/2、実験的なHTTP/3に対応。
  • 03QPSによるレート制限、バーストパターン、実行時間の指定に対応。
  • 04正規表現からランダムなURLを生成、またはファイルからURL一覧を読み込み。
  • 05ドキュメント化されたJSONスキーマを備え、テキスト、JSON、CSV、quietモードで出力。
  • 06協調的オミッションを避けるレイテンシ補正オプション。
  • 07TLSオプション、クライアント証明書、プロキシ、AWS SigV4署名に対応。

ユースケース

  • リリース前にWebサービスへ並行負荷をかけ、挙動を確認する。
  • エンドポイントのHTTP/1.1とHTTP/2のパフォーマンスを比較する。
  • アクセスログのURLを再生して、現実的なトラフィック構成を生成する。
  • JSONまたはCSV出力を使って、CIやスクリプトで手早くベンチマークを実行する。

クイックスタート

  1. 1

    Cargoでohaをインストールします(Rust、make、cmakeが必要です)

    cargo install oha
  2. 2

    READMEのUsageセクションにあるオプションを使って、対象URLに対してohaを実行します

使う前に知っておきたいこと

  • Cargoでソースからビルドするには、makeとcmakeがインストールされている必要があります。
  • HTTP/3機能は実験的で、TLSにはrustlsを使用します。
  • READMEに記載されているのはテスト済みのプラットフォーム(Linux、Windows 10、macOS)のみで、それ以外のサポートについては明記されていません。

収録されている特集

トピック

よくある質問

oha とは?
rakyll/heyに着想を得た、リアルタイムのターミナルUIを備えるRust製のコマンドラインHTTP負荷生成ツール。 ohaは、WebアプリケーションにHTTP負荷をかけ、その結果をリアルタイムのターミナルUIに表示するコマンドラインツールです。rakyll/heyをモデルにしており、オプションもheyの慣例に沿っていますが、いくつか違いがあります。たとえば-qフラグは、ワーカーごとではなく全体のQPSを指定します。
oha は無料で使えますか?ライセンスは?
oha は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
oha は今もメンテナンスされていますか?
活発にメンテナンス中。oha の最終コミットは 2026年10月22日 です。
oha は何に使えますか?
リリース前にWebサービスへ並行負荷をかけ、挙動を確認する。 エンドポイントのHTTP/1.1とHTTP/2のパフォーマンスを比較する。 アクセスログのURLを再生して、現実的なトラフィック構成を生成する。 JSONまたはCSV出力を使って、CIやスクリプトで手早くベンチマークを実行する。
oha のインストール方法は?
Cargoでohaをインストールします(Rust、make、cmakeが必要です): cargo install oha READMEのUsageセクションにあるオプションを使って、対象URLに対してohaを実行します
oha はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/hatoo/oha

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト