見出し画像

負荷テストツールVegeta学習3:Vegetaのパラメータ


はじめに


こんにちは、DevOps推進2グループの李です。前回はVegetaの書き方と実行方法について紹介しました。これでVegetaの使い方に少し慣れてきましたでしょうか?Powershellを使って1行で負荷テストを実行できるので非常に使いやすいです。続けて、今回はVegetaのパラメータを紹介しようと思います。

下記が今回使用するソフトウェアです。

今回は連載のラストとして使えるパラメータについて紹介したいと思います。

連載目次

Vegetaのコマンド構成 Vegetaのコマンドは、基本的には以下の4つの要素で構成されます。

vegeta [共通パラメータ] <コマンド > [コマンドパラメータ]

この記法を用いることで、Vegetaのあらゆる操作を実行することができます。Vegetaが使えるパラメータの一覧を取得するには、Powershellで「vegeta -help」を入力すると、利用可能なパラメータの詳細が表示されます。それでは、以下でVegetaの具体的なコマンドを詳しく見ていきましょう。

共通パラメータ


  • -cpus int:使用するCPUコア数(デフォルトは 全コア)

  • -profile string:プロファイリングを有効にする

  • -version:バージョンを表示する

コマンド


Vegetaのコマンドは、総じて以下の4つに分類されます。それぞれのコマンドが担う主な機能は以下の通りです。

  • attack: 負荷テストを実施するコマンド

  • report: レポートを出力するコマンド

  • plot: グラフを出力するコマンド

  • encode: 結果のエンコード方式を指定するコマンド

これからは、各コマンドのパラメータについて詳しく紹介していきます。

attackコマンドのパラメータ


  • -body [path]:リクエストボディのファイルパス

  • -cert [path]:TLSクライアントPEMエンコード証明書のファイルパス

  • -chunked:チャンクで送信する

  • -connections [int]:最大オープンアイドル接続数(デフォルトは10000)

  • -dns-ttl [value]:DNS検索のためのキャッシュ保持期間 [-1 = 無効, 0 = 無期限](デフォルトは0s)

  • -duration duration:テストの実行時間 [0は無期限]

  • -format [string]:対象タイトのリクエスト形式 [http, json](デフォルトはhttp)

  • -h2c:TLS暗号化なしでHTTP/2リクエストを送信

  • -header [value]:リクエストヘッダ

  • -http2:サーバーがサポートしている場合はHTTP/2リクエストを送信(デフォルトはtrue)

  • -insecure:無効なサーバーTLS証明書を無視

  • -keepalive:keepaliveを使用(デフォルトはtrue)

  • -key [path]:TLSクライアントのPEM秘密鍵のファイルパス

  • -laddr [IP]:ローカルIPアドレスを指定する(デフォルトは0.0.0.0)

  • -lazy:対象を遅延読み込み

  • -max-body [byte数]:レスポンスボディからキャプチャするバイト数の上限。[-1 = 制限なし](デフォルトは -1)

  • -max-connections [int]:対象ホストごとの最大接続数

  • -max-workers [uint]:最大ユーザ数

  • -name [string]:リクエストを命名する

  • -output [string]:出力ファイル名

  • -proxy-header [value]:プロキシの接続ヘッダ

  • -rate [value]:単位時間あたりのリクエスト数 [0 = 無限](デフォルトは 50/1s)

  • -redirects [int]:フォローするリダイレクトの数。-1はフォローせず成功としてマークする(デフォルトは 10)

  • -root-certs [path]:TLSルート証明書のファイルパス

  • -session-tickets:セッションチケットを使用してTLSセッション再開を有効にする

  • -targets [string]:読み込み対象ファイル

  • -timeout [duration]:リクエストのタイムアウト(デフォルトは 30s)

  • -workers [uint]:初期ユーザ数(デフォルトは10)

reportコマンドのパラメータ


  • -buckets [string]:ヒストグラムの単位、例: "[0,1ms,10ms]"

  • -every [duration]:定期的にレポート出力のインターバル(デフォルトは最後まで1回のみ出力する)

  • -output [path]:出力ファイルのパス

  • -type string:生成するレポートの種類 [text, json, hist[buckets], hdrplot](デフォルトはtext)

plotコマンドのパラメータ


  • -output [path]:出力ファイルのパス

  • -threshold [int]:データポイントがこの値を超えると、系列はダウンサンプリングされます。 (デフォルトは 4000)

  • -title string:HTMLページのタイトル

encodeコマンドのパラメータ


  • -output string:出力ファイルのパス

  • -to string:出力エンコーディング [csv, gob, json](デフォルトはjson)

最後に 今回はVegeta(ベジータ)の全パラメータについてご紹介いたしました。このシリーズを通してVegetaの書き方を理解していただければと思います。そして興味があればぜひ試してみてください。

最後までお読みいただき、ありがとうございました!

参考資料:


  1. Vegetaのドキュメント:https://github.com/tsenart/vegeta


執筆者プロフィール:李 嘉興
社会人になって以来、数年間システムエンジニアとして多数のプロジェクトの開発(要件定義~リリース)を経験したのち、2021年7月にSHIFTに入社。システムエンジニアの仕事と全く違う分野の自動化とCICDを経験しつつ、未来のキャリアのため日々奮闘中。

お問合せはお気軽に
https://service.shiftinc.jp/contact/

SHIFTについて(コーポレートサイト)
https://www.shiftinc.jp/

SHIFTのサービスについて(サービスサイト)
https://service.shiftinc.jp/

SHIFTの導入事例
https://service.shiftinc.jp/case/

お役立ち資料はこちら
https://service.shiftinc.jp/resources/

SHIFTの採用情報はこちら
https://recruit.shiftinc.jp/career/

PHOTO:UnsplashMarkus Spiske