HTTPなどの負荷テストを通常のPythonコードで定義できる、Web UI付きのオープンソース負荷テストツール。
- スター
- 25,225
- フォーク
- 1,428
- 未解決の Issue
- 125
- 最終コミット
- 先月
これは何?
Vegetaは、HTTPサービスに一定のリクエストレートで負荷をかけるためのHTTP負荷テストツールです。コマンドラインプログラムとして実行でき、attack、encode、report、plotの各コマンドをUNIXパイプで連結して使えます。また、Goライブラリとしてインポートすれば、コードから負荷テストを実行できます。
ターゲットは、HTTPメッセージ形式のプレーンテキストリスト、または別のプログラムが生成するJSONオブジェクトのストリームで指定できるため、リクエストを動的に生成できます。attackコマンドでは、リクエストレート、実行時間、ワーカー数、タイムアウト、TLS証明書、HTTP/2、keep-alive、接続数の上限、カスタムDNSリゾルバーを設定できます。結果はテキストまたはJSONで要約できるほか、ヒストグラムにまとめたり、HDR histogramデータとしてエクスポートしたり、レイテンシをインタラクティブなHTMLグラフとして表示したりできます。
Vegetaは、攻撃の実行中にPrometheus exporterも提供します。また、複数台のマシンにターゲットレートを分割して実行し、結果ファイルをマージすることで、分散実行にも対応します。
主な機能
- 01一定レートのHTTP負荷テストを、コマンドラインまたはGoライブラリから実行できます。
- 02テキストリストまたはJSONストリームでターゲットを指定でき、入力を遅延生成することもできます。
- 03パーセンタイル、ステータスコードのヒストグラム、エラー一覧を含むレイテンシレポートを作成できます。
- 04テキスト、JSON、ヒストグラム、HDR histogramの各形式で出力できます。
- 05リクエストのレイテンシの推移をインタラクティブなHTMLグラフで表示できます。
- 06攻撃の実行中に使えるPrometheus exporterを内蔵しています。
- 07HTTP/2、TLSクライアント証明書、カスタムヘッダー、DNSリゾルバーに対応しています。
ユースケース
- 一定のリクエストレートで負荷をかけたときのAPIエンドポイントのレイテンシを測定する。
- ターゲットレートを複数台のマシンに分割し、分散負荷テストを実行する。
- スクリプトやデータパイプラインから、動的に生成したリクエストをサービスに送る。
- Prometheus exporterを通じて、Grafanaで攻撃時のメトリクスを監視する。
クイックスタート
- 1
HomebrewでmacOSにインストールする
brew update && brew install vegeta - 2
pacmanでArch Linuxにインストールする
pacman -S vegeta - 3
テストを実行する:5秒間、毎秒50件のGETリクエストを送信してレポートを出力する
echo "GET http://localhost/" | vegeta attack -duration=5s | tee results.bin | vegeta report
使う前に知っておきたいこと
- その他のプラットフォームでは、インストールスクリプトとバイナリはリリースページにのみ掲載されているため、セットアップ方法はOSによって異なります。
収録されている特集
トピック
よくある質問
- vegeta とは?
- 一定のリクエストレートでHTTPリクエストを送信し、レイテンシ統計を出力する、コマンドラインツール兼Goライブラリ。 Vegetaは、HTTPサービスに一定のリクエストレートで負荷をかけるためのHTTP負荷テストツールです。コマンドラインプログラムとして実行でき、attack、encode、report、plotの各コマンドをUNIXパイプで連結して使えます。また、Goライブラリとしてインポートすれば、コードから負荷テストを実行できます。
- vegeta は無料で使えますか?ライセンスは?
- vegeta は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- vegeta は今もメンテナンスされていますか?
- 半年以内に更新あり。vegeta の最終コミットは 2026年9月24日 です。
- vegeta は何に使えますか?
- 一定のリクエストレートで負荷をかけたときのAPIエンドポイントのレイテンシを測定する。 ターゲットレートを複数台のマシンに分割し、分散負荷テストを実行する。 スクリプトやデータパイプラインから、動的に生成したリクエストをサービスに送る。 Prometheus exporterを通じて、Grafanaで攻撃時のメトリクスを監視する。
- vegeta のインストール方法は?
- HomebrewでmacOSにインストールする: brew update && brew install vegeta pacmanでArch Linuxにインストールする: pacman -S vegeta テストを実行する:5秒間、毎秒50件のGETリクエストを送信してレポートを出力する: echo "GET http://localhost/" | vegeta attack -duration=5s | tee results.bin | vegeta report
- vegeta はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/tsenart/vegeta
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
Webアプリケーションなどの負荷テストと性能測定に使える、オープンソースのJavaアプリケーション。
fasthttpを基盤とする、Go製のクロスプラットフォームなHTTP(S)ベンチマーク・負荷テスト用コマンドラインツールです。
rakyll/heyに着想を得た、リアルタイムのターミナルUIを備えるRust製のコマンドラインHTTP負荷生成ツール。
fasthttpを使ったGo製のHTTP(S)負荷テストCLI。リアルタイムのターミナル表示とWebチャートに対応。
L4ロードバランサー、ゲートウェイ、サーバーのベンチマークに使える、DPDKベースのネットワークトラフィック生成・負荷テストツール。