1. はじめに

1.0 概要

JMeter を使用する場合、通常は次のプロセスに従います。

1.0.1 テスト計画の構築

これを行うには、JMeter を GUI モードで実行します。
次に、ブラウザからアプリケーションを記録するか、ネイティブ アプリケーションを記録するかを選択できます。そのために、メニューの[ファイル]  →  [テンプレート... ]  →  [録音] を使用できます。

プランを手動で作成することもできます。主要な概念を理解するに は、このドキュメントを必ずお読みください。

また、次のオプションのいずれかを使用してデバッグします。

結果ツリーレンダラーまたはテスター (CSS/JQUERY、JSON、Regexp、XPath) を表示します。テスト計画を作成するとき は、ベスト プラクティス
に 従っていることを確認してください。

1.0.2 負荷テストの実行

テスト計画の準備ができたら、負荷テストを開始できます。最初のステップは、JMeter を実行するインジェクターを構成することです。これには、他の負荷テスト ツールと同様に、以下が含まれます。

  • CPU、メモリ、およびネットワークに関する正しいマシン サイジング
  • OS チューニング
  • Java セットアップ: JMeter でサポートされている Java の最新バージョンをインストールしてください。
  • Java ヒープ サイズを増やします。デフォルトでは、JMeter は 1 GB のヒープで実行されます。これはテストには不十分であり、テスト計画と実行するスレッドの数によって異なります。
すべての準備が整ったら、CLI モード (以前は非 GUI モードと呼ばれていたコマンドライン モード) を使用して負荷テストを実行します。
GUI モードを使用して負荷テストを実行しないでください。

CLI モードを使用すると、結果を含む CSV (または XML) ファイルを生成し、ロード テストの最後にJMeterに HTML レポートを生成させることができます。デフォルトでは、JMeter は実行中に負荷テストの概要を提供します。Backend Listenerを使用して、テスト中にリアルタイムの結果を
得ることもできます。

1.0.3 負荷テスト分析

負荷テストが完了したら、HTML レポートを使用して負荷テストを分析できます。

1.0.4 始めましょう

JMeter の使用を開始する最も簡単な方法は、最初 に最新の製品リリースをダウンロードしてインストールすることです。このリリースには、Web (HTTP/HTTPS)、FTP、JDBC、LDAP、Java、JUnit など、ほとんどのタイプのテストをビルドして実行するために必要なすべてのファイルが含まれています。

JDBC テストを実行する場合は、もちろん、ベンダーから適切な JDBC ドライバーが必要になります。JMeter には JDBC ドライバーは付属していません。

JMeter には JMS API jar が含まれていますが、JMS クライアントの実装は含まれていません。JMS テストを実行する場合は、JMS プロバイダーから適切な jar をダウンロードする必要があります。

追加の jar のインストールの詳細について は、JMeter クラスパスのセクションを参照してください。

次に、JMeter を起動し、ユーザー ガイドの「テスト計画の作成」セクションに進み、JMeter の基本 (要素の追加と削除など) を理解します。

最後に、特定のタイプのテスト計画を作成する方法に関する適切なセクションを参照してください。たとえば、Web アプリケーションのテストに関心がある場合は、セクション Web テスト計画の作成を参照してください。その他の特定のテスト計画セクションは次のとおりです。

JMeter テスト計画の作成と実行に慣れたら、テスト計画をより詳細に制御できるさまざまな構成要素 (タイマー、リスナー、アサーションなど) を調べることができます。

1.1 要件

JMeter では、コンピューティング環境がいくつかの最小要件を満たしている必要があります。

1.1.1 Java のバージョン

JMeter は Java 8 以降と互換性があります。セキュリティとパフォーマンス上の理由から、メジャー バージョンの最新のマイナー バージョンをインストールすることを強くお勧めします。

JMeter は標準の Java API のみを使用するため、JRE 実装の問題のために JRE が JMeter を実行できない場合は、バグ レポートを提出しないでください。

JRE を使用することもできますが、HTTPS の記録に関しては JDK をインストールすることをお勧めします。JMeter には JDK のkeytoolユーティリティが必要です。

1.1.2 オペレーティングシステム

JMeter は 100% Java アプリケーションであり、準拠した Java 実装を備えたすべてのシステムで正しく動作するはずです。

JMeter でテストされたオペレーティング システムは、 JMeter wikiのこのページで表示できます。

お使いの OS が wi​​ki ページに記載されていなくても、JVM が準拠していれば、JMeter はその OS 上で実行できます。

1.2 オプション

JMeter の開発を計画している場合は、以下にリストされている 1 つ以上のオプション パッケージが必要になります。

1.2.1 Java コンパイラ

JMeter ソースをビルドしたり、JMeter プラグインを開発したりする場合は、完全に準拠した JDK 8 以降が必要です。

1.2.2 SAX XML パーサー

JMeter には、Apache のXerces XML パーサーが付属しています。JMeter に別の XML パーサーを使用するように指示するオプションがあります。これを行うには、サードパーティのパーサーのクラスを JMeter のclasspathに含め、 jmeter.propertiesファイルをパーサー実装の完全なクラス名で更新します。

1.2.3 メールサポート

JMeter には広範な電子メール機能があります。テスト結果に基づいて電子メールを送信でき、POP3(S)/IMAP(S) サンプラーを備えています。また、SMTP(S) サンプラーも備えています。

1.2.4 SSL 暗号化

SSL 暗号化 (HTTPS) を使用して Web サーバーをテストするには、Sun Java 1.4 以降の場合と同様に、JMeter で SSL の実装を提供する必要があります。Java のバージョンに SSL サポートが含まれていない場合は、外部実装を追加できます。JMeter のclasspathに必要な暗号化パッケージを含めます。また、 system.propertiesを更新して SSL プロバイダーを登録します。

JMeter HTTP のデフォルトは、プロトコル レベルの TLS です。これは、jmeter.propertiesまたはuser.propertiesの JMeter プロパティ https.default.protocolを編集することで変更できます。

JMeter HTTP サンプラーは、有効期間などに関係なく、信頼されているかどうかに関係なく、すべての証明書を受け入れるように構成されています。 これは、サーバーのテストで最大限の柔軟性を可能にするためです。

サーバーがクライアント証明書を必要とする場合は、これを提供できます。

証明書をより詳細に制御するためのSSL Managerもあります。

JMeter プロキシ サーバー (以下を参照) は、HTTPS (SSL) の記録をサポートします。

SMTP サンプラーは、必要に応じて、ローカルの信頼ストアを使用するか、すべての証明書を信頼することができます。

1.2.5 JDBC ドライバー

JDBC テストを行う場合は、データベース ベンダーの JDBC ドライバーをクラスパスに追加する必要があります。ファイルがzipではなくjarファイルであることを確認してください。

1.2.6 JMS クライアント

JMeter には Apache Geronimo の JMS API が含まれるようになったため、JMS プロバイダーから適切な JMS クライアント実装 jar を追加するだけで済みます。詳細については、それらのドキュメントを参照してください。JMeter Wikiにも情報がある場合があります。

1.2.7 ActiveMQ JMS のライブラリ

jar activemq-all-XXXjarをクラスパス に追加する必要があります (例: lib/ディレクトリ に格納する) 。

詳細については、 ActiveMQ 初期設定ページ を参照してください。

追加の jar のインストールの詳細について は、JMeter クラスパスのセクションを参照してください。

1.3 インストール

ほとんどのユーザーが最新リリースを実行することをお勧めします。

リリース ビルドをインストールするには、JMeter をインストールするディレクトリに zip/tar ファイルを解凍するだけです。JRE/JDK が正しくインストールされており、JAVA_HOME環境変数が設定されていれば、他に行うことはありません。

ディレクトリ パスにスペースが含まれていると、(特にクライアント サーバー モードで) 問題が発生する可能性があります。

インストール ディレクトリ構造は次のようになります ( XYはバージョン番号です)。

Apache-jmeter-XY
Apache-jmeter-XY/ビン
Apache-jmeter-XY/ドキュメント
apache-jmeter-XY/エクストラ
Apache-jmeter-XY/lib/
Apache-jmeter-XY/lib/ext
Apache-jmeter-XY/lib/junit
apache-jmeter-XY/ライセンス
Apache-jmeter-XY/printable_docs
必要に応じて、親ディレクトリ (つまりapache-jmeter-XY ) の名前を変更できますが、サブディレクトリ名は変更しないでください。

1.4 JMeter の実行


JMeter を実行するには、jmeter.bat (Windows の場合) またはjmeter (Unix の場合) ファイルを実行します。これらのファイルはbinディレクトリにあります。しばらくすると、JMeter GUI が表示されます。

GUI モードはテスト スクリプトの作成にのみ使用し、CLI モード (NON GUI) は負荷テストに使用する必要があります。

binディレクトリには、役に立つと思われる 追加のスクリプトがいくつかあります。Windows スクリプト ファイル (.CMD ファイルには Win2K 以降が必要です):

jmeter.bat
JMeter を実行します (デフォルトでは GUI モードで)
jmeterw.cmd
Windows シェル コンソールなしで JMeter を実行します (デフォルトでは GUI モード)。
jmeter-n.cmd
これにJMXファイルをドロップして、CLIモードテストを実行します
jmeter-nr.cmd
これにJMXファイルをドロップして、CLIモードテストをリモートで実行します
jmeter-t.cmd
これにJMXファイルをドロップして、GUIモードでロードします
jmeter-server.bat
JMeter をサーバー モードで起動する
ミラーサーバー.cmd
JMeter Mirror Server を CLI モードで実行します
シャットダウン.cmd
シャットダウン クライアントを実行して、CLI モード インスタンスを正常に停止する
stoptest.cmd
シャットダウン クライアントを実行して、CLI モード インスタンスを突然停止する
特別な名前LASTはjmeter-n.cmdjmeter-t.cmd、およびjmeter- nr.cmdで使用でき、 対話的に実行された最後のテスト計画を意味します。

JMeter の JVM 設定をカスタマイズするために使用できる環境変数がいくつかあります。これらを設定する簡単な方法は、binディレクトリにsetenv.batという名前のファイルを作成することです。このようなファイルは次のようになります。

rem これは bin\setenv.bat の内容です。
rem bin\jmeter.bat によって呼び出されます

set JVM_ARGS=-Xms1024m -Xmx1024m -Dpropname=value

JVM_ARGSは、 jmeter.batスクリプト の JVM 設定をオーバーライドするために使用でき、 JMeterの起動時に設定されます。

jmeter -t test.jmx …

次の環境変数を定義できます。

DDRAW
-Dsun.java2d.ddscale=trueなど、直接描画の使用に影響を与える JVM オプション。デフォルトは空です。
GC_ALGO
JVM ガベージ コレクタ オプション。デフォルトは-XX:+UseG1GC -XX:MaxGCPauseMillis=250 -XX:G1ReservePercent=20
ヒープ
JMeter の起動時に使用される JVM メモリ設定。デフォルトは-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m
JMETER_BIN
JMeter bin ディレクトリ ( \で終わる必要があります)。setenv.batが呼び出されると、値が推測されます。
JMETER_COMPLETE_ARGS
設定されている場合、JVM_ARGSJMETER_OPTSのみが使用されることを示します。HEAPGC_ALGOなどの他のすべてのオプションは無視されます。デフォルトは空です。
JMETER_HOME
インストール ディレクトリ。jmeter.batの場所から推測されます
JMETER_LANGUAGE
使用する言語を指定する Java ランタイム オプション。デフォルト: -Duser.language="en" -Duser.region="EN"
JM_LAUNCH
java.exe (デフォルト) またはjavaw.exeなどの Java 実行可能ファイルの名前
JVM_ARGS
JMeter の起動時に使用する Java オプション。これらは java コマンドの最後に追加されます。デフォルトは空です

Un*x スクリプト ファイル。ほとんどの Linux/Unix システムで動作するはずです:

jmeter
JMeter を実行します (デフォルトでは GUI モード)。すべての JVM で機能しない可能性があるいくつかの JVM 設定を定義します。
jmeter サーバー
JMeter をサーバー モードで起動します (適切なパラメータで jmeter スクリプトを呼び出します)。
jmeter.sh
非常に基本的な JMeter スクリプト (メモリ設定などの JVM オプションを調整する必要がある場合があります)。
ミラーサーバー.sh
JMeter Mirror Server を CLI モードで実行します
shutdown.sh
シャットダウン クライアントを実行して、CLI モード インスタンスを正常に停止する
stoptest.sh
シャットダウン クライアントを実行して、CLI モード インスタンスを突然停止する

JMeter が使用する JVM を構成するには、いくつかの環境変数を設定する必要がある場合があります。これらの変数は、 jmeterスクリプトを開始するシェルで直接設定できます。たとえば、変数JVM_ARGSを設定すると、事前定義されたほとんどの設定が上書きされます。

JVM_ARGS="-Xms1024m -Xmx1024m" jmeter -t test.jmx [など]

スクリプトの HEAP 設定をオーバーライドします。

これらの変数を永続的に設定するには、それらをbinディレクトリのsetenv.shというファイルに配置します。このファイルは、jmeterスクリプトを呼び出して JMeter を実行するときに供給されます。bin/setenv.shの例は次のようになります。

# これはファイル bin/setenv.sh です。
# bin/jmeter によって供給されます

# デフォルトよりも大きなヒープを使用しますが、メタスペースは小さくします
export HEAP="-Xms1G -Xmx1G -XMaxMetaspaceSize=192m"

# OS からロケールを推測してみてください。価値ある空間はわざと!
export JMETER_LANGUAGE=" "

次の環境変数を定義できます。

GC_ALGO
JVM ガベージ コレクション アルゴリズムを指定する Java ランタイム オプション。デフォルトは-XX:+UseG1GC -XX:MaxGCPauseMillis=250 -XX:G1ReservePercent=20
ヒープ
JMeter の起動時に使用されるメモリ管理用の Java ランタイム オプション。デフォルトは-Xms1g -Xmx1g -X:MaxMetaspaceSize=256m
JAVA_HOME
Java 開発キットのインストールを指す必要があります。「 debug」引数を指定して を実行する必要があります。一部の OS では、JMeter は JVM の場所を推測するために最善を尽くします。
JMETER_COMPLETE_ARGS
設定されている場合、JVM_ARGSJMETER_OPTSのみが使用されることを示します。HEAPGC_ALGOなどの他のすべてのオプションは無視されます。デフォルトは空です。
JMETER_HOME
JMeter のインストール ディレクトリを指す場合があります。空の場合は、jmeterスクリプトに対して相対的に設定されます。
JMETER_LANGUAGE
使用する言語を指定する Java ランタイム オプション。デフォルトは-Duser.language=en -Duser.region=EN
JMETER_OPTS
JMeter の起動時に使用される Java ランタイム オプション。オペレーティング システムの特別なオプションが JMeter によって追加される場合があります。
JRE_HOME
Java ランタイム インストールを指定する必要があります。空の場合、デフォルトはJAVA_HOMEです。JRE_HOMEJAVA_HOMEが両方とも空の場合、JMeter はJAVA_HOMEを推測しようとします。JRE_HOMEJAVA_HOMEの両方が設定されている場合、JAVA_HOME使用されます。
JVM_ARGS
JMeter の起動時に使用する Java オプション。これらは、JMETER_OPTSの前、および他の JVM オプションの後に追加されます。デフォルトは空です

1.4.1 JMeter のクラスパス

JMeter は、次のディレクトリ内の jar からクラスを自動的に検索します。

JMETER_HOME/lib
ユーティリティ jar に使用
JMETER_HOME/lib/ext
JMeter コンポーネントとプラグインに使用

新しい JMeter コンポーネントを開発した場合は、それらを jar し、その jar を JMeter のlib/extディレクトリにコピーする必要があります。JMeter は、ここで見つかったすべての jar で JMeter コンポーネントを自動的に見つけます。プラグインが使用するユーティリティ jar または依存関係 jar にlib/extを使用しないでください。JMeter コンポーネントとプラグインのみを対象としています。

JMeter プラグイン jar をlib/extディレクトリに置きたくない場合は、jmeter.propertiesでプロパティsearch_pathsを定義します。

ユーティリティおよび依存関係の jar (ライブラリなど) は、 libディレクトリに配置できます。

このような jar をlibディレクトリに置きたくない場合は、プロパティuser.classpathまたはplugin_dependency_pathsjmeter.propertiesで定義します。違いの説明については、以下を参照してください。

その他の jar (JDBC、JMS 実装、および JMeter コードに必要なその他のサポート ライブラリなど) は、 lib/extディレクトリではなくlibディレクトリに配置するか、 user.classpathに追加する必要があります。

JMeter は.zipではなく.jarファイルのみを検索します。

ユーティリティ Jar ファイルを$JAVA_HOME/jre/lib/extにインストールするか、 jmeter.propertiesでプロパティuser.classpathを設定することもできます。

CLASSPATH環境変数を設定しても効果がないことに注意してください。これは、JMeter が「java -jar 」で開始され、java コマンドがCLASSPATH変数、および-jarが使用されている場合の-classpath / -cp オプションを黙って無視するためです。

これは、JMeter だけでなく、すべての Java プログラムで発生します。

1.4.2 テンプレートからテスト計画を作成する

既存のテンプレートから新しいテスト計画を作成できます。

これを行うには、メニューの [ファイル]  →  [テンプレート] または [テンプレート] アイコン を使用します。

テンプレート アイコン アイテム
テンプレート アイコン アイテム

ポップアップが表示され、リストからテンプレートを選択できます。

テンプレートポップアップ
テンプレートポップアップ

一部のテンプレートでは、ユーザーからのパラメーター入力が必要になる場合があります。これらの場合、作成ボタンをクリックすると、次のような新しいウィンドウが表示されます。

パラメータウィンドウ
パラメータウィンドウ

パラメータの設定が完了したら、[検証] ボタンをクリックすると、テンプレートが作成されます。

各テンプレートのドキュメントでは、テンプレートからテスト計画が作成された後に何をすべきかを説明しています。

こちらのドキュメントに従って、独自のテンプレートを作成できます

1.4.3 プロキシの背後で JMeter を使用する

ファイアウォール/プロキシ サーバーの背後からテストする場合は、JMeter にファイアウォール/プロキシ サーバーのホスト名とポート番号を提供する必要がある場合があります。これを行うには、次のパラメーターを使用してコマンド ラインからjmeter[.bat]ファイルを実行します。

-E
[使用するプロキシ スキーム - オプション - http 以外の場合]
-H
[プロキシ サーバーのホスト名または IP アドレス]
-P
[プロキシサーバーポート]
-N
[非プロキシ ホスト] (例: *.apache.org|localhost )
-u
[プロキシ認証用のユーザー名 - 必要な場合]
-a
[プロキシ認証のパスワード - 必要な場合]
jmeter -E https -H my.proxy.server -P 8000 -u ユーザー名 -a パスワード -N localhost

--proxyScheme--proxyHost--proxyPort--username、および--passwordをパラメータ名として使用することもできます

コマンドラインで提供されるパラメーターは、システム上の他のユーザーに表示される場合があります。

プロキシ スキームが提供されている場合、JMeter は次のシステム プロパティを設定します。

  • http.proxyScheme

プロキシ ホストとポートが指定されている場合、JMeter は次のシステム プロパティを設定します。

  • http.proxyHost
  • http.proxyPort
  • https.proxyHost
  • https.proxyPort

プロキシに使用されるユーザーとパスワードは、システム プロパティhttp.proxyUser およびhttp.proxyUserによって指定できます。これらは、HTTP サンプラーで設定された上記の引数または値によってオーバーライドされます。

非プロキシ ホスト リストが提供されている場合、JMeter は次のシステム プロパティを設定します。

  • http.nonProxyHosts
  • https.nonProxyHosts

したがって、http プロキシと https プロキシの両方を設定したくない場合は、コマンドライン パラメーターを使用する代わりに 、 system.propertiesで関連するプロパティを定義できます。

プロキシ設定は、HTTP リクエストのデフォルト 設定またはHTTP リクエストサンプラー要素 の いずれかを使用して、テスト計画で定義することもできます。

JMeter には、組み込みの Proxy Server であるHTTP(S) Test Script Recorderもあります。これは、HTTP または HTTPS ブラウザ セッションの記録にのみ使用されます。これは、JMeter が HTTP または HTTPS リクエスト自体を作成するときに使用される上記のプロキシ設定と混同しないでください。

1.4.4 CLI モード (コマンドラインモードは NON GUI モードと呼ばれていました)

負荷テストの場合、JMeter をこのモード (GUI なし) で実行して、最適な結果を得る必要があります。これを行うには、次のコマンド オプションを使用します。

-n
これは、JMeter が cli モードで実行されることを指定します
-t
[テスト計画を含む JMX ファイルの名前]。
-l
[サンプル結果を記録する JTL ファイルの名前]。
-j
[JMeter 実行ログ ファイルの名前]。
-r
JMeter プロパティ " remote_hosts "で指定されたサーバーでテストを実行します。
-R
[リモート サーバーのリスト] 指定したリモート サーバーでテストを実行する
-g
[CSV ファイルへのパス] レポート ダッシュボードのみを生成
-e
負荷テスト後にレポート ダッシュボードを生成する
-o
負荷テスト後にレポート ダッシュボードを生成する出力フォルダー。フォルダが存在しないか空である必要があります

このスクリプトでは、オプションのファイアウォール/プロキシ サーバー情報も指定できます。

-H
[プロキシ サーバーのホスト名または IP アドレス]
-P
[プロキシサーバーポート]
jmeter -n -t my_test.jmx -l log.jtl -H my.proxy.server -P 8000

プロパティjmeterengine.stopfail.system.exitがtrueに設定されている場合(デフォルトはfalse )、すべてのスレッドを停止できない場合、JMeter はSystem.exit(1)を呼び出します。通常、これは必要ありません。

1.4.5 サーバーモード

分散テストの場合、リモート ノードで JMeter をサーバー モードで実行し、GUI からサーバーを制御します。CLI モードを使用してリモート テストを実行することもできます。サーバーを起動するには、各サーバー ホストでjmeter-server[.bat]を実行します。

このスクリプトでは、オプションのファイアウォール/プロキシ サーバー情報も指定できます。

-H
[プロキシ サーバーのホスト名または IP アドレス]
-P
[プロキシサーバーポート]
jmeter-server -H my.proxy.server -P 8000

単一のテストの実行後にサーバーを終了する場合は、JMeter プロパティserver.exitaftertest=trueを定義します。

クライアントから CLI モードでテストを実行するには、次のコマンドを使用します。

jmeter -n -t testplan.jmx -r [-Gprop=val] [-Gglobal.properties] [-X]
どこ:
-G
サーバーに設定するJMeterプロパティを定義するために使用されます
-バツ
テストの最後にサーバーを終了することを意味します
-Rサーバー1、サーバー2
-rの代わりに使用して、起動するサーバーのリストを提供できます。remote_hostsをオーバーライドしますが、プロパティは定義しません。

プロパティjmeterengine.remote.system.exitがtrueに設定されている場合(デフォルトはfalse )、JMeter はテストの最後で RMI を停止した後にSystem.exit(0)を呼び出します。通常、これは必要ありません。

1.4.6 コマンドラインによるプロパティのオーバーライド

Java システム プロパティと JMeter プロパティは、( jmeter.propertiesを変更する代わりに) コマンド ラインで直接オーバーライドできます。これを行うには、次のオプションを使用します。

-D[プロパティ名]=[値]
Java システム プロパティ値を定義します。
-J[プロパティ名]=[値]
ローカル JMeter プロパティを定義します。
-G[プロパティ名]=[値]
すべてのリモート サーバーに送信される JMeter プロパティを定義します。
-G[プロパティファイル]
すべてのリモート サーバーに送信される JMeter プロパティを含むファイルを定義します。
-L[カテゴリ]=[優先度]
ロギング設定を上書きし、特定のカテゴリを指定された優先レベルに設定します。

-Lフラグをカテゴリ名なしで使用して、ルート ログ レベルを設定することもできます。

:

jmeter -Duser.dir=/home/mstover/jmeter_stuff \
    -Jremote_hosts=127.0.0.1 -Ljmeter.engine=DEBUG
jmeter-LDEBUG
コマンド ライン プロパティは、起動の早い段階で処理されますが、ログ システムが設定された後で処理されます。

1.4.7 ロギングとエラーメッセージ

3.2 以降、JMeter ロギングはjmeter.properties などのプロパティ ファイルを介して構成されなくなりましたが、代わりにApache Log4j 2構成ファイル (デフォルトでは、JMeter が起動されたディレクトリ内のlog4j2.xml )を介して構成されます。 . また、JMeter とプラグインを含むすべてのコードは、3.2 以降のログを残すためにSLF4Jライブラリを使用する必要があります。

以下は、カテゴリごとに 2 つのログ アペンダーとロガーを定義する log4j2.xmlファイル の例です。

<Configuration status="WARN" packages="org.apache.jmeter.gui.logging">

  <アペンダー>

    <!-- デフォルトでは、JMeter が起動されたディレクトリ内の jmeter.log へのメイン ログ ファイル アペンダー。-->
    <File name="jmeter-log" fileName="${sys:jmeter.logfile:-jmeter.log}" append="false">
      <パターンレイアウト>
        <pattern>%d %p %c{1.}: %m%n</pattern>
      </パターンレイアウト>
    </ファイル>

    <!-- GUI ログ ビューアーのログ アペンダー。下記参照。-->
    <GuiLogEvent name="gui-log-event">
      <パターンレイアウト>
        <pattern>%d %p %c{1.}: %m%n</pattern>
      </パターンレイアウト>
    </GuiLogEvent>

  </アペンダー>

  <ロガー>

    <!-- ルートロガー -->
    <ルートレベル="情報">
      <AppenderRef ref="jmeter-log" />
      <AppenderRef ref="gui-log-event" />
    </ルート>

    <!-- スニップ -->

    <!--
      # Apache HttpClient のログの例
    -->
    <!-- # ヘッダー ワイヤ + コンテキスト ログを有効にする - デバッグに最適 -->
    <!--
    <ロガー名="org.apache.http" レベル="デバッグ" />
    <ロガー名="org.apache.http.wire" レベル="エラー" />
    -->

    <!-- スニップ -->

  </ロガー>

</設定>

たとえば、 org.apache.httpカテゴリ のログ レベルをデバッグ レベルに変更する場合は、JMeter を起動する前に、 log4j2.xmlファイルに次の logger 要素を追加 (またはコメント解除) するだけです。

  <ロガー>
    <!-- スニップ -->
    <ロガー名="org.apache.http" レベル="デバッグ" />
    <!-- スニップ -->
  </ロガー>

log4j2.xmlファイルの 構成方法の詳細については、 Apache Log4j 2 構成ページを参照してください。

特定のカテゴリまたはルート ロガーのログ レベルは、( log4j2.xml を変更する代わりに) コマンド ラインで直接オーバーライドすることもできます。これを行うには、次のオプションを使用します。

-L[カテゴリ]=[優先度]
特定のカテゴリを特定の優先度レベルに設定して、ロギング設定をオーバーライドします。3.2 以降、完全なカテゴリ名 (例: org.apache.jmeterまたはcom.example.foo ) を使用することをお勧めしますが、カテゴリ名がjmeterまたはjorphanで始まる場合は、org.apache. 下位互換性のために 完全なカテゴリ名 (つまり、org.apache.jmeterまたはorg.apache.jorphan ) を構築するために、カテゴリ名入力の前に内部的に追加されます。

:

jmeter -Ljmeter.engine=DEBUG
jmeter -Lorg.apache.jmeter.engine=DEBUG
jmeter -Lcom.example.foo=DEBUG
jmeter-LDEBUG

ロギングの違い: 古い慣例と新しい慣例:

JMeter は SLF4J をロギング API として使用し、Apache Log4j 2 を 3.2 以降のロギング フレームワークとして使用するため、3.2 より前に使用されたすべてのログ レベルが、SLF4J/Log4j2 によって提供される新しい使用可能なログ レベルの 1 つと正確に一致するとは限りません。したがって、既存のロギング構成とロギング コードを移行する必要がある場合は、次の相違点と新しい推奨プラクティスに留意してください。

カテゴリー 3.2 より前の古いプラクティス 3.2以降の新しいプラクティス
ロガー リファレンス LoggingManager を介したロガー参照:
LoggingManager.getLoggerFor(文字列カテゴリ);
LoggingManager.getLoggerForClass();
カテゴリまたは明示的なクラスで SLF4J API を使用します。
LoggerFactory.getLogger(文字列カテゴリ);
LoggerFactory.getLogger(Foo.class);
構成またはコマンド ライン引数のログ レベル 古いログ レベル:
  • デバッグ
  • 情報
  • 暖かい
  • エラー
  • 致命的な誤り
  • なし
SLF4J/Log4j2 による新しいレベルへのマッピング:
  • デバッグ
  • 情報
  • 暖かい
  • エラー
  • エラー
  • オフ
FATAL_ERRORはSLF4J API でサポートされていないため、既存のコードが壊れないように代わりにERRORとして扱われます。FATALログ レベル オプション もあります。
DEBUGほど具体的ではないTRACEレベルは、3.2 以降で追加でサポートされています。詳細については、SLF4J または Apache Log4J 2 のドキュメントを参照してください。
通常、JMeter はエラーに対してポップアップ ダイアログ ボックスを使用しません。これは、これらがテストの実行を妨げるためです。また、スペルミスのある変数や関数のエラーも報告しません。代わりに、参照はそのまま使用されます。詳細については、関数と変数を参照してください

JMeter がテスト中にエラーを検出すると、ログ ファイルにメッセージが書き込まれます。ログ ファイル名は、log4j2.xmlファイルで定義されます (または-jオプションを使用します。以下を参照してください)。デフォルトはjmeter.logで、JMeter が起動されたディレクトリにあります。

メニューの[オプション]  →  [ログ ビューア] を選択 すると、JMeter のメイン ウィンドウの下部ペインにログ ファイルが表示されます。

GUI モードでは、ログ ファイルに記録されたエラー/致命的なメッセージの数が右上に表示されます。

エラー/致命的なカウンター
エラー/致命的なカウンター

コマンドライン オプション-j jmeterlogfileを使用すると、最初のプロパティ ファイルが読み取られた後、さらにプロパティが処理される前に処理できます。したがって、jmeter.logのデフォルトをオーバーライドできます。テスト計画名をパラメーターとして受け取る jmeter スクリプト (例: jmeter-n.cmd ) は、テスト計画名を使用してログ ファイルを定義するように更新されました。たとえば、テスト計画Test27.jmxの場合、ログ ファイルはTest27 に設定されます。ログ

Windows で実行している場合、ファイル拡張子を表示するように Windows を設定していない限り、ファイルは単にjmeterとして表示されることがあります。[テキストファイルを装ったウイルスやその他の厄介なものを検出しやすくするために、とにかく行うべきことは…]

jmeter.logファイルには、エラーの記録だけでなく、テストの実行に関する情報も記録されます。例えば:

2017-03-01 12:19:20,314 情報 oajJMeter: バージョン 3.2.20170301
2017-03-01 12:19:45,314 INFO oajgaLoad: ファイルを読み込んでいます: c:\mytestfiles\BSH.jmx
2017-03-01 12:19:52,328 INFO oajeStandardJMeterEngine: テストを実行しています!
2017-03-01 12:19:52,384 INFO oajeStandardJMeterEngine: グループ BSH の 1 つのスレッドを開始しています。ランプアップ = 1。
2017-03-01 12:19:52,485 INFO oajeStandardJMeterEngine: エラーが発生しても続行します
2017-03-01 12:19:52,589 INFO oajtJMeterThread: スレッド BSH1-1 が開始されました
2017-03-01 12:19:52,590 INFO oajtJMeterThread: スレッド BSH1-1 が完了しました
2017-03-01 12:19:52,691 INFO oajeStandardJMeterEngine: テストが終了しました

JMeter はエラー ダイアログを表示するためにテストを中断しないため、ログ ファイルはエラーの原因を特定するのに役立ちます。

1.4.8 コマンドラインオプションの完全なリスト

JMeter を「jmeter -?」として呼び出すと、すべてのコマンドライン オプションのリストが出力されます。これらを以下に示します。

    --?
        コマンドラインオプションを表示して終了
    -h, --help
        使用状況を表示して終了
    -v, --version
        バージョン情報を出力して終了
    -p, --propfile <引数>
        使用する jmeter プロパティ ファイル
    -q, --addprop <引数>
        追加の JMeter プロパティ ファイル
    -t, --testfile <引数>
        実行する jmeter テスト (.jmx) ファイル
    -l, --logfile <引数>
        サンプルを記録するファイル
    -i, --jmeterlogconf <引数>
        jmeter ロギング構成ファイル (log4j2.xml)
    -j, --jmeterlogfile <引数>
        jmeter 実行ログ ファイル (jmeter.log)
    -n, --nongui
        JMeter を非 GUI モードで実行する
    -s, --server
        JMeter サーバーを実行する
    -H, --proxyHost <引数>
        JMeter が使用するプロキシ サーバーを設定する
    -P, --proxyPort <引数>
        JMeter が使用するプロキシ サーバー ポートを設定する
    -N, --nonProxyHosts <引数>
        非プロキシ ホスト リストの設定 (例: *.apache.org|localhost)
    -u, --username <引数>
        JMeter が使用するプロキシ サーバーのユーザー名を設定します。
    -a, --password <引数>
        JMeter が使用するプロキシ サーバーのパスワードを設定します。
    -J, --jmeterproperty <引数>=<値>
        追加の JMeter プロパティを定義する
    -G, --globalproperty <引数>=<値>
        グローバル プロパティの定義 (サーバーに送信)
        例 -Gport=123
         または -Gglobal.properties
    -D, --systemproperty <引数>=<値>
        追加のシステム プロパティを定義する
    -S, --systemPropertyFile <引数>
        追加のシステム プロパティ ファイル
    -f, --forceDeleteResultFile
        テストを開始する前に、存在する場合は既存の結果ファイルと Web レポート フォルダーを強制的に削除します。
    -L, --loglevel <引数>=<値>
        [category=]level 例: jorphan=INFO、jmeter.util=DEBUG、com.example.foo=WARN
    -r, --runremote
        リモート サーバーを起動します (remote_hosts で定義)。
    -R, --remotestart <引数>
        これらのリモート サーバーを起動します (remote_hosts をオーバーライドします)
    -d, --homedir <引数>
        使用する jmeter ホーム ディレクトリ
    -X, --remoteexit
        テストの最後にリモート サーバーを終了します (CLI モード)。
    -g, --reportonly <引数>
        テスト結果ファイルからレポート ダッシュボードのみを生成する
    -e, --reportatendofloadtests
        負荷テスト後にレポート ダッシュボードを生成する
    -o, --reportoutputfolder <引数>
        レポート ダッシュボードの出力フォルダー

注: JMeter ログ ファイル名は、一重引用符のペアが含まれている場合、SimpleDateFormat (現在の日付に適用される) としてフォーマットされます。たとえば、「jmeter_'yyyyMMddHHmmss'.log

-t-j、または-lフラグに 特別な名前LASTが使用されている場合、JMeter はそれを、インタラクティブ モードで実行された最後のテスト計画を意味すると見なします。

1.4.9 CLI モードのシャットダウン

バージョン 2.5.1 より前では、JMeter はCLI モード テストが完了するとSystem.exit()を呼び出しました。これにより、JMeter を直接呼び出すアプリケーションで問題が発生したため、JMeter は通常のテスト完了のためにSystem.exit()を呼び出さなくなりました。[一部の致命的なエラーは引き続きSystem.exit()を呼び出す可能性があります] JMeter は、開始したすべての非デーモン スレッドを終了しますが、一部の非デーモン スレッドがまだ残っている可能性があります。これらは、JVM が終了するのを防ぎます。この状況を検出するために、JMeter は終了する直前に新しいデーモン スレッドを開始します。このデーモン スレッドはしばらく待機します。待機から戻った場合は、JVM が終了できなかったことは明らかであり、スレッドはその理由を示すメッセージを出力します。

プロパティjmeter.exit.check.pauseを使用して、デフォルトの 2000 ミリ秒 (2 秒) の一時停止をオーバーライドできます。0に設定すると、JMeter はデーモン スレッドを開始しません。

1.5 JMeter の設定

JMeter の実行に使用するプロパティを変更する場合は、/binディレクトリのuser.propertiesを変更するか、 jmeter.propertiesの独自のコピーを作成してコマンド ラインで指定する必要があります。

注:デフォルト値user.propertiesを持つ JMeter プロパティuser.properties によって定義されたファイルで、追加の JMeter プロパティを定義できます。ファイルが現在のディレクトリにある場合、または JMeter の bin ディレクトリにある場合、ファイルは自動的にロードされます。同様に、system.propertiesを使用してシステム プロパティを更新します。

パラメーター

属性
説明
必須
ssl.プロバイダー
組み込みの Java 実装を使用したくない場合は、SSL 実装のクラスを指定できます。
いいえ
xml.parser
XML パーサーとして実装を指定できます。デフォルト値: org.apache.xerces.parsers.SAXParser
いいえ
リモートホスト
リモート JMeter ホスト (または、必要に応じてhost:port ) のカンマ区切りリスト。分散環境で JMeter を実行している場合は、JMeter リモート サーバーが実行されているマシンをリストします。これにより、このマシンの GUI からこれらのサーバーを制御できるようになります。
いいえ
not_in_menu
JMeter のメニューに表示したくないコンポーネントのリスト。JMeter にはますます多くのコンポーネントが追加されるため、関心のあるコンポーネントのみを表示するように JMeter をカスタマイズすることをお勧めします。ここにそれらのクラス名またはクラス ラベル (JMeter の UI に表示される文字列) をリストすることができます。メニューに表示されなくなりました。
いいえ
検索パス
JMeter が JMeter プラグイン クラス (追加のサンプラーなど) を検索する( ;で 区切られた) パスのリスト。パス項目は、jar ファイルまたはディレクトリのいずれかです。そのようなディレクトリ内の jar ファイルはすべて自動的にsearch_pathsに含まれ、サブディレクトリ内の jar ファイルは無視されます。指定された値は、lib/extディレクトリにあるすべての jar に追加されます。
いいえ
ユーザー.クラスパス
JMeter がユーティリティとプラグインの依存関係クラスを検索するパスのリスト。複数のパスを区切るには、プラットフォーム パス セパレータを使用します。パス項目は、jar ファイルまたはディレクトリのいずれかです。このようなディレクトリ内の jar ファイルは、自動的にuser.classpathに含まれ、サブディレクトリ内の jar ファイルは無視されます。指定された値は、lib ディレクトリにあるすべての jar に追加されます。すべてのエントリは、システム クラス ローダーのクラス パスと JMeter 内部ローダーのパスに追加されます。
いいえ
plugin_dependency_paths
JMeter がユーティリティとプラグインの依存関係クラスを検索するパス ( ;で 区切られた) のリスト。パス項目は、jar ファイルまたはディレクトリのいずれかです。そのようなディレクトリ内のすべての jar ファイルは自動的にplugin_dependency_pathsに含まれ、サブディレクトリ内の jar ファイルは無視されます。指定された値は、libディレクトリにある、またはuser.classpathプロパティによって指定されたすべての jar に追加されます。すべてのエントリは、JMeter 内部ローダーのパスにのみ追加されます。plugin_dependency_pathsを使用したプラグインの依存関係については、 user.classpathよりも優先する必要があります 。
いいえ
ユーザーのプロパティ
追加の JMeter プロパティを含むファイルの名前。これらは初期プロパティ ファイルの後、-qおよび-Jオプションが処理される前に追加されます。
いいえ
システムプロパティ
追加のシステム プロパティを含むファイルの名前。これらは、-Sおよび-Dオプションが処理される前に追加されます。
いいえ

コマンド ライン オプションとプロパティ ファイルは、次の順序で処理されます。

  1. -p propfile
  2. jmeter.properties (または-pオプションのファイル) が読み込まれます。
  3. -j ログファイル
  4. ロギングが初期化されました
  5. user.propertiesがロードされます
  6. system.propertiesが読み込まれます
  7. 他のすべてのコマンドライン オプションが処理されます

変更できるその他の設定の 詳細については、 jmeter.propertiesuser.properties、およびsystem.propertiesファイル のコメントも参照してください。

Go to top