公開日:8/29/2021  更新日:3/26/2022

  • twitter
  • facebook
  • line

JMeterでのシナリオ作成手順の備忘録

はじめに

実務でJMeterを使用して画面負荷テストをする機会があったので、手順とその際にハマった箇所を備忘録として残します。

シナリオ作成手順

1.記録コントローラを使用してシナリオ記録

JMeter の機能でlocalhostでプロキシをたて、画面操作をしてテスト計画の雛形を作成する。

jMeter画面

  1. Test Plan 右クリック->追加->スレッドグループ追加
  2. スレッドグループ->ロジックコントローラー->記録コントローラー追加
  3. Test Plan 右クリック->Non-Testエレメント->HTTPプロキシサーバー追加
  4. HTTPプロキシサーバに記録コントローラを紐づけ->対象となるコントローラから選択
  5. ローカルPCのプロキシ設定変更からJMeterのプロキシサーバを設定、プロキシサーバを使うをONに設定
    (IP:localhost、Port:8888 がデフォルト)
  6. HTTPプロキシサーバ->開始ボタン押下→ブラウザを画面操作
    ※プライベートIPアドレス指定でURLアクセスする必要あり
    ※ipconfig コマンド出力結果 の Wireless LAN adapter Wi-Fi IPv4 アドレスを確認
  7. シナリオが記録されていることを確認→停止ボタン押下
    ※.gif や .jsファイル等のリソース取得が邪魔な場合は、HTTPプロキシサーバの除外フィルタを使用する

2.持ち回りパラメータを設定

ブラウザがクッキーを使用する場合は、後処理->HTTPクッキーマネージャーを追加
複数回シナリオを記録→Diffを取って動的パラメータを特定
hidden項目を使用した動的パラメータが存在する場合、下記記事を参考に正規表現抽出を追加する
シナリオ作成#4_動的パラメータを取り込み、エラーを解消させる
※ パラメータが渡されたか確認した際に、${参照名}がそのまま渡されている場合は 正規表現の抽出条件が間違えている
※ 実際に抽出が成功しているのかエディタの正規表現検索を使って事前に確認すると良い

3.シナリオを綺麗に成形 (リファクタリング)

  1. HTTP リクエスト初期値設定の追加 (ドメインなどを登録)
    ・スレッドグループ->追加->HTTP リクエスト初期値設定
  2. ユーザ定義変数の追加 (ログイン情報などを登録)
    ・スレッドグループ->追加->設定エレメント->ユーザ定義変数

4.スレッドグループのスレッドプロパティを設定

・スレッド数
起動するセッション数
・Ramp-Up期間(秒)
こちらで指定した期間に、スレッドを”スレッド数”で設定した数の分だけ生成
・ループ回数
処理の繰り返し回数

5.リスナーの作成

スレッドグループ->追加->リスナー
から必要な結果を表示してくれるリスナーを追加する

シナリオ実行

並列度を上げると負荷が高くなるのでテスト計画ファイル(.jmx)はコマンドラインから実行。
テストシナリオを保存したjmxファイルのパス、JMeterのログの出力先、web report の出力先を引数に設定してコマンド実行。

jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]

参考記事

JMeterの基本的な使い方
JMeterを使用して負荷テストを効率よく行う
シナリオ作成#4_動的パラメータを取り込み、エラーを解消させる
シナリオ作成#5_リファクタリング実施

戻る