第5回:リファクタリング実施

第4回:動的パラメータを取り込み、エラーを解消させるでは、正常に動作するシナリオの作成を行いました。

シナリオ作成時と、負荷テスト時でドメインが変更になる場合が良くあります。固定ではなく、動的に変更される可能性があるものについて、簡単に修正ができるようにしておくと後々の対応がしやすくなります。最低限の動作が確認できたら、シナリオのリファクタリングを行っていきましょう。

この記事では、次の3点について紹介していきます。

  • 共通パラメータの一元管理
  • リファラ
  • ユーザー定義変数

動画解説もあるので、そちらも併せて参考にしてください。

共通パラメータの一元管理

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

ドメインやプロトコル、ポート番号など、シナリオ単位で共通なものを一元管理することで、変更に強いシナリオを作ることが可能です。

スレッドグループへ、「HTTP リクエスト初期値設定」の追加を行います。

  • スレッドグループ->追加->設定エレメント->HTTP リクエスト初期値設定
HTTP リクエスト初期値設定追加

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

「プロトコル」「サーバ名またはIP」「ポート」にそれぞれ値を設定します。

項目 設定値
プロトコル https
サーバ名またはIP scenario.ptune.jp
ポート 443
値を設定

値を設定

個別リクエストから共通部分の削除

「HTTP リクエスト初期値設定」を入れたので、個別のリクエストから設定を削除していきます。

個別リクエストから削除

個別リクエストから削除

個別リクエストに設定が入っている場合、個別リクエストが優先されるので必ず削除を行います。すべての個別リクエストから削除が完了したら終了になります。

一度シナリオを実行してみて、正常終了することを確認しておきましょう。

リファラ

HTTPプロキシサーバでシナリオをキャプチャしたときと、実際に負荷試験を実施したときでは、リファラが異なっている場合があります。リファラを固定値ではなく、動的に設定することが可能です。負荷テストの結果に影響する箇所ではありませんが、アクセスログへ出力される内容でもあるので、このタイミングで変更しておきましょう。

リファラ用正規表現抽出追加

リファラは「正規表現抽出」を利用して取得します。

スレッドグループ直下に「正規表現抽出」を追加してください。

  • スレッドグループ->追加->後処理->正規表現抽出
項目 設定内容 設定例
Field to check チェック箇所 URL
名前 わかりやすい名前 リファラ
参照名 他の場所から参照するときの名前 ref
正規表現 抽出条件 (.*)
テンプレート (.*)が複数ある場合に取得する場所。$1$から連番で指定 $1$
一致番号 一致するものが複数ある場合に取得する箇所 1
初期値 一致しなかった場合のデフォルト値
リファラ取得用設定

リファラ取得用設定

リファラ用HTTPヘッダマネージャー追加

設定が完了したら、全リクエストで共通利用するための「HTTPヘッダマネージャー」をスレッドグループに追加します。

  • スレッドグループ->追加->設定->HTTPヘッダマネージャー
HTTPヘッダマネージャー追加

HTTPヘッダマネージャー追加

「HTTPヘッダマネージャー」へリファラの設定を追加します。

HTTPヘッダマネージャーへリファラを追加する

HTTPヘッダマネージャーへリファラを追加する

個別リクエストからリファラ設定削除

最後に、「HTTPリクエスト」直下の「HTTP ヘッダマネージャ」からリファラの設定を削除していきます。

各リクエストからリファラ削除

各リクエストからリファラ削除

ユーザー定義変数

ユーザーのログイン情報など変更の可能性があるパラメータは「ユーザー定義変数」にまとめて管理しておくことで、変更しやすいシナリオとなります。「ユーザー定義変数」に参照名と値の形で定義し、利用箇所で参照名を使って参照していきます。

ここでは、ログインID(login_email)とパスワード(login_pass)をユーザー定義変数に設定していきます。

ユーザー定義変数の作成

まずはスレッドグループに「ユーザー定義変数」を作成します。

  • スレッドグループ->追加->設定エレメント->ユーザー定義変数
ユーザー定義変数を追加

ユーザー定義変数を追加

「ユーザー定義変数」へログイン情報の登録を行います。

ログイン情報を登録

ログイン情報を登録

ユーザー定義変数の参照

登録が完了したら、「30_ログイン実施」へ戻り、ログイン情報の値を参照させる形に変更します。参照は「${名前}」の形式で行うことが可能です。

ユーザー定義変数を参照させる

ユーザー定義変数を参照させる

一度シナリオを流してみて、正常にログインできれば完成です。

まとめ

この記事では、JMeterシナリオのリファクタリングの方法を紹介しました。変更に強いシナリオを作成するためには、シナリオの整理が必要になります。後の手戻り工数を抑えるためにも、対応しておきましょう。

~~~~~~~~~~~~~~~~~~~~~
~ JMeterの負荷テストシナリオ作成入門 ~
~~~~~~~~~~~~~~~~~~~~~
第1回:【負荷テスト】JMeterのシナリオ作成入門
第2回:JMeterのインストールと初期設定
第3回:HTTPプロキシサーバーを利用したベースシナリオの作成
第4回:動的パラメータを取り込み、エラーを解消させる
第5回:リファクタリング実施
第6回:入力パラメータを外部ファイルから読み込む ←次の記事
第7回:負荷テスト用の修正を実施
番外編:EC-CUBE4の環境構築方法

コメントは受け付けていません。