■テスト計画にスレッドグループと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
■コマンドラインモードの実行結果を表示する
- 「スレットグループ」を右クリックし、「追加」→「リスナー」→「結果を表で表示」を選択する。
- 「全てのデータをファイルに出力」の「参照」ボタンを押し、出力したログファイルを開く