JMeter テスト

このトピックでは,Controller から Apache JMeter テストを実行する際の概要を示します。

JMeter テストの概要

Apache JMeter は,Web アプリケーションにフォーカスを当て,さまざまなサービスのパフォーマンスを分析および測定するためのオープン・ソースの負荷テスト・ツールです。Apache JMeter テストを操作する場合,LoadRunner Professional では,Controller からテストを実行することもできます。

JMeter(.jmx)スクリプトをシナリオに含めると,1 つ以上の JMeter テストを他の LoadRunner Professional プロトコル・スクリプトと並列で実行し,パフォーマンス・テスト実行用の単一のエントリ・ポイントを提供することができます。

LoadRunner Professional インストールには,埋め込み版の JMeter が含まれています。他のインストールや設定は不要です。JMeter スクリプトは,Windows と Linux の両方の Load Generator で実行できます。Windows と Linux の Docker インストールでも,JMeter スクリプトがサポートされています。

LoadRunner Professional では,JMeter スクリプトのために,実行中の仮想ユーザの数とランプアップ設定を Controller 経由で操作できます。.jmx ファイルの JMeter スレッド・グループに対して定義されたスレッド・プロパティ(「スレッド数」,「ランプアップ期間」,「ループ・カウント」など)は無視されます。JMeter 仮想ユーザの設定は,他のプロトコル・タイプの仮想ユーザの設定と同じ方法で行います。

測定値は,JMeter テストのデータ・ポイントを使用して,オンラインおよびオフラインで表示できます(Controller および Analysis 経由)。

先頭に戻る

JMeter スクリプトのトランザクション

JMeter テストは,スレッド,JMeter の仮想ユーザに相当するもの,およびスレッド・グループで動作します。LoadRunner Professional では JMeter テストを異なる方法で処理します。

  • JMeter スクリプトに複数のスレッド・グループが含まれている場合は,複数のスクリプトに分割することを促すプロンプトが表示されます(各スクリプトに含まれるスレッド・グループは 1 つだけとなります)。ThreadGroup 名はトランザクション名に含まれません。そのため,異なるスレッド・グループで同じ名前のトランザクションを定義しないことをお勧めします。
  • .jmx ファイルの[TransactionController]セクションにあるトランザクション名のみが結果に表示されます。
  • トランザクション名にはドットを含めないでください。

先頭に戻る

JMeter テストの前提条件

JMeter スクリプトでシナリオを作成する前に,次のガイドラインに注意してください。

一般

  • Load Generator マシンに JRE がインストールされていることを確認してください。サポートされているバージョンについては,Virtual User Generator ヘルプセンター(該当するバージョンを選択)の JRE サポート・マトリックスを参照してください。
  • JMeter スクリプトがプラグインで開発されている場合は,スクリプトが適切に動作するように,必ずプラグインを埋め込みの JMeter インストール(<LR のインストール・ディレクトリ>\bin\jmeter\lib\ext フォルダ内)に追加してください。

  • Linux Load Generator の場合は,JAVA_HOME 環境変数を Java JRE フォルダを指すように設定することをお勧めします。
  • いくつかの追加プロパティと Java 属性を使用して,JMeter の設定をカスタマイズできます。詳細については,Apache JMeter のドキュメントを参照してください。設定をカスタマイズするには,下の説明に従って,実行環境設定の[追加パラメータ]ボックスに属性を追加します。
  • LoadRunner Professional シナリオを実行する前に,該当する JMeter テストが Load Generator マシン上の JMeter インストールで実行可能なことをチェックしてください。

ヒント: JMeter テストスクリプトの実行には,専用の Load Generator マシンを使用することをお勧めします。localhost の Load Generator を使用して Controller からテストを実行すると,不安定になる可能性があります。

データ・ファイル

JMeter スクリプトは,.csv 形式のパラメータ・ファイルを参照できます。.csv ファイルを参照するには,次のことを確認します。

  • ファイルが .jmx ファイルと同じフォルダ(サブフォルダではない)にある。
  • JMeter スクリプト内の参照パスが,.csv ファイルを正しく指している。

Controller はこれらのファイルを見つけて,実行のために Load Generator に送ります。

JAR ファイル

JMeter テストに.jar ファイルの依存関係が含まれている場合は,必ず次の場所に保存してください。

  • ユーザが追加したクラスを含む .jar ファイルは,.jmx ファイルと同じフォルダにある lib という名前のフォルダに保存する必要があります。<.jmx ファイルの場所> > lib
  • JMeter プラグインを含む.jar ファイルは,ext という名前の lib フォルダのサブフォルダに保存する必要があります。<.jmx ファイルの場所> > lib > ext

シナリオの実行時に Controller がファイルを検出し,Load Generator にコピーして実行できるように,このフォルダ構造にファイルを保存する必要があります。

先頭に戻る

JMeter テストのシナリオへの追加

このタスクでは,JMeter スクリプトを含むシナリオを作成し,その実行環境設定を定義する方法について説明します。

JMeter シナリオを作成するには,次の手順を実行します。

  1. 「JMeter テストの前提条件」の説明のように,Load Generator マシンが JMeter テストを実行するように設定されていることを確認します。
  2. Controller のメイン・ツールバーで,[シナリオを新規作成]ボタン をクリックします。
  3. [新規シナリオ]ダイアログ・ボックスで,[スクリプトの追加]をクリックします。
  4. [スクリプト タイプ]ドロップダウンから,[JMeterスクリプト]を選択します。[参照]をクリックして,JMeter スクリプト(.jmx ファイル)を選択します。
  5. [新規シナリオ]ダイアログ・ボックスで[OK]をクリックします。[デザイン]タブで,JMeter スクリプトを含むシナリオが開きます。
  6. 次のことを行う必要がある場合は,実行環境設定を構成します。

    • カスタム JRE パスを指定する

    • JVM の動作をカスタマイズする

    • 反復の間隔を設定する

    実行環境設定を開くには,スクリプト名を右クリックして[実行環境設定]を選択するか,[実行環境設定]ツールバー・ボタン をクリックします。

    1. JMeter]設定セクションで,[カスタム JRE パス]や[追加パラメータ]セクションのストリングを指定します。例: -Xms512m

    2. ペーシング]セクションで,間隔の詳細を指定します。詳細については,Virtual User Generator ヘルプセンター(該当するバージョンを選択)の「反復と実行論理」を参照してください。

  7. 他の LoadRunner プロトコルの場合と同じようにスケジュールを指定します。詳細については,「シナリオのスケジュールを定義する」を参照してください。

  8. [実行]タブで,[シナリオの開始]ボタンをクリックしてシナリオの実行を開始します。
  9. シナリオの実行中に仮想ユーザを追加するには,[仮想ユーザの実行/停止]をクリックして数を変更します。

JMeter テスト結果の表示

JMeter のテスト実行は,以下の標準的な Controller グラフで監視できます。

  • 実行中の仮想ユーザ
  • トランザクション応答時間
  • 秒ごとの合計トランザクション数(成功)
  • 秒ごとのトランザクション(成功)
  • 秒ごとの HTTP 応答数
  • 秒ごとのヒット数
  • スループット - 負荷テスト全体

これらのグラフの表示の詳細については,「オンライン・モニタ・グラフの表示とカスタマイズ」を参照してください。

先頭に戻る

既知の問題とトラブルシューティング

LoadRunner Professional で実行される JMeter テストには,次のような既知の問題があります。

  • JMeter テストでは Web HTTP サンプラしかサポートされていない。
  • Setup スレッド・グループは 1 回だけ実行される。
  • TearDown スレッド・グループがサポートされていない。
  • .jmx ファイルで定義されたループが無視され,1 回しか実行されない。
  • Controller の反復番号が正しくない場合がある。

  • ネットワーク仮想化が,JMeter テストに対してサポートされていない。

JMeter テストのトラブルシューティング

次の表に,実行が失敗するいくつかの理由と解決策の候補を示します。

エラー・メッセージ
解決策
JMX ファイル 'C:\jmeter_tests\test.jmx' が見つかりません。

考えられる原因:

  • ファイルがこの場所に存在していない。
  • ファイルの複製に十分なディスク領域がない。
JMeter には JRE 8 以降が必要です。実行環境設定または JAVA_HOME 環境変数で Java の設定を確認してください。 Java がマシンに正しくインストールされていることと,JAVA_HOME 変数が正しく設定されていることを確認します。

Jmeter 用のパイプを作成できませんでした。

考えられる原因:利用可能なシステム・リソースが不足している。

JMeter 内部エラー:"…"

メッセージに含まれている JMeter 内部エラーの内容を確認します。

jmeter.log ファイル内:CannotResolveClassException:... 考えられる原因:クラスを含む .jar ファイルの依存関係が見つからないか,正しい場所に保存されていません。詳細については,「JAR ファイル」を参照してください。

先頭に戻る

関連項目: