ぺーぺーSEのブログ

備忘録・メモ用サイト。

JMeter入門

入手、起動は省略。
GUIモードで起動してからのお話。
ここではJMeter2.12を使用した。

テスト計画とワークベンチ

最初に起動すると左の方に「テスト計画」と「ワークベンチ」っていうのがある。

テスト計画

テストの実行指示を設定する。
開始ボタン(緑の右向三角)をクリックすると、設定したテスト計画に従ってテストが実行される。

ワークベンチ

テスト計画配下に作成したスレッドグループ等をドラッグ&ドロップで退避できる。
消したくないけど、実行したくない、ってときに便利。
ただし、「Non-Testエレメント」(HTTPプロキシサーバ等)はここにしかない。

テスト計画「追加」要素

「Threads (Users)」と「Test Fragment」以外は、後述の「■スレッドグループ「追加」要素」と同様。

  • Threads (Users)
    • 説明は後述
  • Test Fragment > Test Fragment
    • 外部のjmxファイルをインクルードする「Include Controller」とセットで利用する
    • インクルードするjmxファイルのテスト計画配下の「Test Fragment」配下にある要素がインクルードされる
  • 設定エレメント
  • タイマ
  • 前処理
  • 後処理
  • アサーション
  • リスナー


Threads (Users)

Threads (Users)には「setUp Thread Group」「tearDown Thread Group」「スレッドグループ」が含まれるが、ここでは「スレッドグループ」について記載する。
スレッドグループでは主に「サンプラーエラー後のアクション」「スレッドプロパティ」を設定する。

サンプラーエラー後のアクション

サンプラーは、テスト時のアクション・リクエストを定義するもので、例えば「HTTPリクエスト」のようなものがある。
そのサンプラーでエラーが発生した際のアクションとして以下のような項目をラジオボタンで選択できる。

  • 続行
    • エラー無視
  • Start Next Thread Loop
    • 今ループの処理を中断して、次のループから開始
  • スレッド停止
    • 現在のスレッドのみ停止
  • テスト停止
    • いずれかのサンプラーの終了を待ってテスト全体を停止
  • Stop Test Now
    • すぐに停止


スレッドプロパティ

スレッドグループ配下のサンプラー起動、実行時の並列度、終了時のアクション等について設定する。

  • スレッド数
    • 同時に起動する最大スレッド数
  • Ramp-Up期間(秒)
    • 全スレッドを起動するのにかける時間
  • ループ回数
    • テストの実行回数/1つのスレッドのループ回数
  • Delay Thread creation until needed
    • 大量のスレッドを起こすときに設定するといいらしい
  • スケジューラ
    • スレッドグループ実行の「開始時間」「終了時間」「持続時間」「起動遅延」を設定できる


■スレッドグループ「追加」要素

上記で出た「サンプラー」の含め、スレッドグループには以下のような要素を追加できる。

  • ロジックコントローラ
    • 1回のテストにおいて、サンプラー複数回実行させたり、いくつかのサンプラーのなかから条件に合致するものを実行させたりと、主にサンプラーをまとめてコントロールする機能
    • 主に「スレッドグループ」配下に配置する
  • 設定エレメント
    • サンプラーへ追加の設定(HTTPヘッダ、Basic認証、クッキー等)を行う機能
      • ユーザ変数を定義したり、外部ファイルを読み込むこともできる
    • 「スレッドグループ」や「サンプラー」配下に配置する
    • CSV Data Set Config」「HTTPリクエスト初期設定」「HTTP認証マネージャ」「HTTPヘッダマネージャ」「HTTPクッキーマネージャ」等がある
      • CSV Data Set Config」は、外部のCSVファイルからユーザID・パスワードを読み込む等できて便利
  • タイマ
    • サンプラー間等に配置し、スレッドの一時停止を行う機能
  • 前処理
  • サンプラー
    • テスト時のアクション・リクエストを定義する機能
    • 「スレッドグループ」や「ロジックコントローラ」配下に配置する
    • FTPリクエスト」「HTTPリクエスト」「JDBC Request」等がある
  • 後処理
  • アサーション
    • サンプラーの結果(レスポンス)を検査し、それが正しいかどうかをチェックする機能
  • リスナー
    • テスト中に収集した情報を表示したり、ファイルへ保存したりする機能
    • 「結果をツリーで表示」「結果を表で表示」等がある



ワークベンチ「追加」要素

「Non-Testエレメント」以外はスレッドグループと同様。

  • Non-Testエレメント
    • プロキシサーバ等を設定できる
  • ロジックコントローラ
  • 設定エレメント
  • タイマ
  • 前処理
  • サンプラー
  • 後処理
  • アサーション
  • リスナー


Non-Testエレメント

主に「HTTPプロキシサーバ」を使用する。
プロキシサーバの使い方については下記を参照。

http://d.hatena.ne.jp/tanakakns/20150107/1420608734

また、「Property Display」は、JMeterJavaプロセスとして実行される際のプロパティ(設定項目)とその値を表示する。


参考:
http://www.techscore.com/tech/Java/ApacheJakarta/JMeter/index/
http://net-newbie.com/jmeter/