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 モードを使用すると、結果を含む 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 をダウンロードする必要があります。
次に、JMeter を起動し、ユーザー ガイドの「テスト計画の作成」セクションに進み、JMeter の基本 (要素の追加と削除など) を理解します。
最後に、特定のタイプのテスト計画を作成する方法に関する適切なセクションを参照してください。たとえば、Web アプリケーションのテストに関心がある場合は、セクション Web テスト計画の作成を参照してください。その他の特定のテスト計画セクションは次のとおりです。
JMeter テスト計画の作成と実行に慣れたら、テスト計画をより詳細に制御できるさまざまな構成要素 (タイマー、リスナー、アサーションなど) を調べることができます。
1.1 要件¶
JMeter では、コンピューティング環境がいくつかの最小要件を満たしている必要があります。
1.1.1 Java のバージョン¶
JMeter は標準の Java API のみを使用するため、JRE 実装の問題のために JRE が JMeter を実行できない場合は、バグ レポートを提出しないでください。
1.1.2 オペレーティングシステム¶
JMeter は 100% Java アプリケーションであり、準拠した Java 実装を備えたすべてのシステムで正しく動作するはずです。
JMeter でテストされたオペレーティング システムは、 JMeter wikiのこのページで表示できます。
お使いの OS が wiki ページに記載されていなくても、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もあります。
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 初期設定ページ を参照してください。
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 が表示されます。
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 モード インスタンスを突然停止する
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_ARGSとJMETER_OPTSのみが使用されることを示します。HEAPやGC_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_ARGSとJMETER_OPTSのみが使用されることを示します。HEAPやGC_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_HOMEとJAVA_HOMEが両方とも空の場合、JMeter はJAVA_HOMEを推測しようとします。JRE_HOMEとJAVA_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_paths をjmeter.propertiesで定義します。違いの説明については、以下を参照してください。
その他の jar (JDBC、JMS 実装、および JMeter コードに必要なその他のサポート ライブラリなど) は、 lib/extディレクトリではなくlibディレクトリに配置するか、 user.classpathに追加する必要があります。
ユーティリティ Jar ファイルを$JAVA_HOME/jre/lib/extにインストールするか、 jmeter.propertiesでプロパティuser.classpathを設定することもできます。
CLASSPATH環境変数を設定しても効果がないことに注意してください。これは、JMeter が「java -jar 」で開始され、java コマンドがCLASSPATH変数、および-jarが使用されている場合の-classpath / -cp オプションを黙って無視するためです。
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 リクエストサンプラー要素 の いずれかを使用して、テスト計画で定義することもできます。
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 ロギングとエラーメッセージ¶
以下は、カテゴリごとに 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 がテスト中にエラーを検出すると、ログ ファイルにメッセージが書き込まれます。ログ ファイル名は、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の独自のコピーを作成してコマンド ラインで指定する必要があります。
パラメーター
コマンド ライン オプションとプロパティ ファイルは、次の順序で処理されます。
- -p propfile
- jmeter.properties (または-pオプションのファイル) が読み込まれます。
- -j ログファイル
- ロギングが初期化されました
- user.propertiesがロードされます
- system.propertiesが読み込まれます
- 他のすべてのコマンドライン オプションが処理されます
変更できるその他の設定の 詳細については、 jmeter.properties、user.properties、およびsystem.propertiesファイル のコメントも参照してください。