JMeterのインストールから負荷テストまでの備忘録

■テスト計画にスレッドグループとHTTPプロキシサーバーを追加する

「HTTPプロキシサーバー」の「対象となるコントローラ」を「テスト計画>スレッドグループ」に設定する

テスト計画
└スレットグループ
 └記録コントローラ
└HTTPプロキシサーバー

■プラグインをインストールする

  • Installing Pluginsのページからplugins-manager.jarをダウンロードし、JMeterのlib/extディレクトリーにコピーする。
  • JMeterを起動し、メニューの「オプション」→「Plugins Manager」を選択する。
  • 「Available Plugins」の「jpgc – Standard Set」をチェックし、「Apply Changes and Restart JMeter」ボタンを押す。

■不要な通信を記録しないように、記録するリクエストの条件を登録する

  • 「HTTPプロキシサーバー」を選択して、「Requests Filtering」タブを選択する。
  • 「挿入するパターン」の「追加」ボタンを押す。
  • テストするドメイン名を入力する。(.test.example.com.)
  • 「除外するパターン」の「追加」ボタンを押す。
  • 除外するパターンを入力する。

■Macのプロキシを設定する

  • 「Macのシステム環境設定」→「ネットワーク」→「Wi-Fi」→「詳細」→「プロキシ」を選択する
  • 「構成するプロトコルを選択」の「Webプロキシ(HTTP)」をチェックし、「Webプロキシサーバ」を「localhost」:「8888」に設定する。
  • 「構成するプロトコルを選択」の「保護されたWebプロキシ(HTTPS)」をチェックし、「Webプロキシサーバ」を「localhost」:「8888」に設定する。
  • 「OK」→「適用」をクリックする。

■記録を開始する

  • 「HTTPプロキシサーバー」の「開始」ボタンをクリックする。「停止」ボタンを押すまでの間の通信内容が記録される。
  • Webブラウザでテストするサイトにアクセスして、操作する。
  • 「停止」ボタンを押して、記録を修正する。
  • 通信内容が「テスト計画」→「スレットグループ」→「記録コントローラ」に追加されているので、不要なリクエストを削除する。

■リクエストの結果を検証する

  • HTTPリクエストを右クリックし、「追加」→「アサーション」→「アサーション」を選択する。
  • 追加したアサーションの「テストするレスポンスフィールド」の「応答コード」をチェックし、「テストパターン」に「200」または「302」を入力する。

■CSRF対応

CSRFトークンの取得

  • CSRFのトークンを返すHTTPリクエストを右クリックし、「追加」→「後処理」→「CSS Selector Extractor」を選択する。
  • 「参照名」に変数名「csrf_token」を入力する。
  • 「CSS Selector expression」に「input[name=_token]」を入力する。
  • 「Attribute」に「value」を入力する。

CSRFトークンの送信

  • CSRFトークンを送信するHTTPリクエストを選択する。
  • 「Parameters」タブを選択する。
  • 「リクエストで送るパラメータ」の値のセルに「${csrf_token}」を入力する。

HTTPクッキーマネージャの追加

  • 「記録コントローラ」を右クリックし、「追加」→「設定エレメント」→「HTTPクッキーマネージャ」を選択する。
  • 「繰り返しごとにクッキーを破棄しますか?」をチェックする。

■JSONの値を使用する

JSONから値の取得

  • JSONを返すHTTPリクエストを右クリックし、「追加」→「後処理」→「JSON Extractor」を選択する。
  • 「Names of created variables」に変数名を入力する。
  • 「JSON Path expressions」にJSONのパスを入力する。

JSONの値の送信

  • JSONの値を送信するHTTPリクエストを選択する。
  • 「Parameters」タブを選択する。
  • 「リクエストで送るパラメータ」の値のセルに「${変数名}」を入力する。

■カウンタを使用する

  • 「記録コントローラ」を右クリックし、「追加」→「設定エレメント」→「カウンタ」を選択する。
  • 「Number format」に「000」を入力すると、カウンタは「001」〜「999」となる。
  • 「参照名」に変数名を入力する。カウンタの値は「${変数名}」で取得できる。

■スレッドグループを設定する

  • 「Delay Thread creation untill needed」をチェックする。

スレッドの設定

  • 「スレッド数」…1回のループで実行するスレッドの数
  • 「Ramp-Up期間(秒)」…1回のループにかける時間
  • 「ループ回数」…繰り返す回数

「スレッド数」を5、「Ramp-Up期間(秒)」を10、「ループ回数」を1と設定した場合、
2秒ごとに1スレッドを作成してリクエストを送信する。

■テスト対象のサーバーを切り替える

HTTPリクエスト初期設定の追加

  • 「スレッドグループ」を右クリックし、「追加」→「設定エレメント」→「HTTPリクエスト初期設定」を選択する。
  • HTTPリクエストの項目が空欄のとき、HTTPリクエスト初期設定の値が使用される。

HTTPリクエスト初期設定の切り替え

  • 複数のHTTPリクエスト初期設定を作成して、HTTPリクエスト初期設定の有効・無効を切り替え、テスト対象のサーバーを切り替える。

■コマンドラインモードで実行する

jmeter -n -t my_test.jmx -l log.jtl

コマンドラインのオプション(公式)

  • -n
    JMeterをCLIモードで実行する
  • -t
    引数 テスト計画を含むJMXファイルの名前
  • -l
    引数 サンプル結果をログに記録するJTLファイルの名前
  • -j
    引数 JMeter実行ログファイルの名前
  • -r
    JMeterプロパティ「remote_hosts」で指定されたサーバーでテストを実行する
  • -R
    引数 リモートサーバーのリスト
    指定したリモートサーバーでテストを実行する
  • -g
    引数 CSVファイルへのパス
    レポートダッシュボードのみを生成する
  • -o
    負荷テスト後にレポートダッシュボードを生成する出力フォルダー。
    フォルダは存在していないか、空であること。
  • -H
    引数 プロキシサーバーのホスト名またはIPアドレス
  • -P
    引数 プロキシサーバーのポート
jmeter -n -t my_test.jmx -l log.jtl

■コマンドラインモードの実行結果を表示する

  • 「スレットグループ」を右クリックし、「追加」→「リスナー」→「結果を表で表示」を選択する。
  • 「全てのデータをファイルに出力」の「参照」ボタンを押し、出力したログファイルを開く

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください