14. レポート ダッシュボードの生成

JMeter は、ダッシュボード レポートの生成をサポートして、テスト計画からグラフと統計を取得します。
この章では、ジェネレータの構成方法と使用方法について説明します。

14.1 概要

ダッシュボード ジェネレーターは、JMeter のモジュラー拡張です。そのデフォルトの動作は、CSV ファイルからサンプルを読み取って処理し、グラフ ビューを含む HTML ファイルを生成することです。負荷テストの終了時またはオンデマンドでレポートを生成できます。

このレポートは、次の指標を提供します。

  • APDEX (アプリケーション パフォーマンス インデックス) テーブルは、許容されるしきい値と満たされるしきい値の構成可能な値に基づいて、トランザクションごとに APDEX を計算します。
  • 成功したリクエストと失敗したリクエスト (Transaction Controller のサンプル結果は考慮されていません) のパーセンテージを示すリクエスト概要グラフ:
  • 構成可能な 3 つのパーセンタイルを含む、トランザクションごとのすべてのメトリックの概要を 1 つのテーブルに提供する統計テーブル:
  • すべてのエラーの概要と、リクエスト全体に占める割合を示すエラー テーブル:
  • すべてのサンプラー (デフォルトではトランザクション コントローラーを除く) の上位 5 つのエラーを提供する、サンプラーごとの上位 5 つのエラー テーブル:
  • すべてのトランザクションをチェック/チェック解除して表示/非表示にできるズーム可能なチャート:
    • 経時的な応答時間 (Transaction Controller のサンプル結果を含む) :
    • 一定期間にわたる応答時間のパーセンタイル (成功した応答のみ) :
    • アクティブなスレッドの推移:
    • 経時的なバイト スループット (Transaction Controller のサンプル結果を無視) :
    • 時間の経過に伴うレイテンシ (Transaction Controller のサンプル結果を含む) :
    • Connect Time Over Time (Transaction Controller のサンプル結果を含む) :
    • 1 秒あたりのヒット数 (トランザクション コントローラーのサンプル結果を無視):
    • 1 秒あたりの応答コード (トランザクション コントローラーのサンプル結果を無視):
    • 1 秒あたりのトランザクション数 (トランザクション コントローラーのサンプル結果を含む):
    • 応答時間と 1 秒あたりの要求 (トランザクション コントローラーのサンプル結果を無視):
    • レイテンシと 1 秒あたりのリクエスト (トランザクション コントローラーのサンプル結果は無視):
    • 応答時間の概要 (Transaction Controller のサンプル結果を除く) :
    • 応答時間のパーセンタイル (Transaction Controller のサンプル結果を含む):
    • 時間とスレッド (トランザクション コントローラーのサンプル結果を含む):
      分散モードでは、このグラフは横軸に 1 サーバーのスレッド数を示します。現在の制限です
    • 応答時間の分布 (Transaction Controller のサンプル結果を含む):

14.2 ダッシュボード生成の設定

ダッシュボードの生成では、JMeter プロパティを使用してレポートをカスタマイズします。一般的な設定に使用されるプロパティもあれば、特定のグラフ構成またはエクスポータ構成に使用されるプロパティもあります。

すべてのレポート ジェネレータ プロパティは、ファイルreportgenerator.propertiesにあります。これらのプロパティをカスタマイズするには、user.propertiesファイルにコピーして変更する必要があります。

14.2.1 要件

14.2.1.1 フィルタリング設定

すべてを必要としない場合は、 プロパティjmeter.reportgenerator.exporter.html.series_filterを設定して、レポートに必要なトランザクションのみを保持するようにしてください。以下の例では、 Search|Order
のみを変更する必要があり、残りは保持します。
jmeter.reportgenerator.exporter.html.series_filter=^(検索|順序)(-成功|-失敗)?$

14.2.1.2 サービス構成の保存

ジェネレーターが動作できるようにするには、JMeter によって生成される CSV ファイルに、JMeterの最新のライブ バージョンでデフォルトで正しい特定の必須データが含まれている必要があります。
これらの設定を変更した場合は、JMeter 構成が次の設定に従っていることを確認します (これらはデフォルトです)。

jmeter.save.saveservice.bytes = true
# HttpClient4 でのみ利用可能
#jmeter.save.saveservice.sent_bytes=true
jmeter.save.saveservice.label = true
jmeter.save.saveservice.latency = true
jmeter.save.saveservice.response_code = true
jmeter.save.saveservice.response_message = true
jmeter.save.saveservice.successful = true
jmeter.save.saveservice.thread_counts = true
jmeter.save.saveservice.thread_name = true
jmeter.save.saveservice.time = true
jmeter.save.saveservice.connect_time = true
jmeter.save.saveservice.assertion_results_failure_message = true
# タイムスタンプ形式には時刻と日付を含める必要があります。
# たとえば、エポックからのミリ秒単位のデフォルト:
jmeter.save.saveservice.timestamp_format = ミリ秒
# または、以下も適しています
# jmeter.save.saveservice.timestamp_format = yyyy/MM/dd HH:mm:ss
                        

14.2.1.3 トランザクションコントローラーの設定

Transaction Controller を使用する場合、最も正確な結果を得るには:

  • ボックスのチェックを外します (これがデフォルトの構成です): 親サンプルを生成
  • トランザクション コントローラーが、Ajax 呼び出しをトリガーする HTML ページの要求を表すコンテナーとして使用されており、レポートにトランザクション コントローラーのみが必要な場合は、ノードを右クリックし、ネーミング ポリシーを適用します 。
    これを取得します:

14.2.2 一般設定

すべてのプロパティには接頭辞を付ける必要があります
jmeter.reportgenerator.

パラメーター

属性
説明
必須
report_title
生成されたレポートで使用されるタイトル。
デフォルト: 「Apache JMeter ダッシュボード」
いいえ
日付形式
Locale.ENGLISH を使用した SimpleDateFormat Java APIの デフォルトの日付形式。
デフォルトの日付形式はyyyyMMddHHmmss
です。負荷テストの後にレポートを生成したい場合や、結果ファイルに別のタイム ゾーンのタイムスタンプが含まれている場合に便利です。この場合、日付形式にはタイムゾーン (zzz) を含める必要があります。
jmeter.save.saveservice.timestamp_formatに年が含まれていない場合は、年として 1970 を使用します

例: dd/MM/yyyy HH:mm:ss zzz
いいえ
開始日
レポートに使用するデータ範囲の開始日。
日付形式は、date_format プロパティによって定義されます。
デフォルト: データ範囲が最初から使用されることを意味します。
いいえ
終了日
レポートに使用するデータ範囲の終了日。
日付形式は、date_format プロパティによって定義されます。
デフォルト: 未入力。つまり、データ範囲が最後まで使用されます。
いいえ
全体的な粒度
経時グラフの粒度。データは 1 分刻みになるように集計されます。
粒度は 1 秒 (1000) より高くする必要があります。それ以外の場合、スループット グラフは正しくありません
デフォルト:「60000」(1分)
いいえ
apdex_satisfied_threshold
APDEX計算 の満足度しきい値を設定し ます (ミリ秒単位)。
デフォルト: 500
いいえ
apdex_tolerated_threshold
APDEX 計算の許容しきい値を設定します (ミリ秒単位)。
デフォルト: 1500
いいえ
jmeter.reportgenerator.apdex_per_transaction
特定のサンプルに満足度と許容度のしきい値を設定します。
サンプル名または正規表現を使用します。
形式はsample_name:satisfaction|tolerance[;]
で​​す 。値はミリ秒単位です。
サンプル名と値の間のコロン、しきい値の間のパイプ、および異なるサンプルを区切る最後のセミコロンに注意してください。複数行にまたがる場合は、セミコロンの後にエスケープすることを忘れないでください。
例:
jmeter.reportgenerator.apdex_per_transaction=sample(\\d+):1000|2000;\
    samples12:3000|4000;\
    シーン01-12:5000|6000
いいえ
サンプルフィルター
グラフと統計を生成するために保持するサンプルのフィルターを設定します。空の値はフィルタリングを無効にします。
形式: 正規表現。
デフォルト: ""
いいえ
temp_dir
ファイル I/O 操作が必要な場合に生成プロセスで使用される一時ディレクトリを設定します。
デフォルト:一時
いいえ
統計ウィンドウ
パーセンタイル評価で使用されるスライディング ウィンドウのサイズを設定します。注意: 値が大きいほど精度が向上しますが、より多くのメモリが必要になります。
デフォルト: 20000
いいえ
サマリー テーブルとパーセンタイル グラフで使用されるパーセンタイルは、次の 3 つのプロパティを使用して異なる値に調整できます。
  • aggregate_rpt_pct1 : デフォルトは 90 です
  • aggregate_rpt_pct2 : デフォルトは 95 です
  • aggregate_rpt_pct3 : デフォルトは 99 です
相対パスは、JMeter 作業ディレクトリ (デフォルト: bin ) から作成されます。

ジェネレーター構成で使用されるいくつかの全体的なプロパティを定義できます。これらのプロパティは自由に命名できますが、接頭辞を使用する必要があります

jmeter.reportgenerator.
プロパティの重複を避けるためです。

例えば:

プロパティ定義:
jmeter.reportgenerator.overall_granularity=60000
プロパティ参照:
${jmeter.reportgenerator.overall_granularity}

14.2.3 グラフ設定

グラフ構成を記述する各プロパティには、接頭辞を付ける必要があります

jmeter.reportgenerator.graph.
その後にグラフ識別子が続きます。

14.2.3.1 一般プロパティ

すべてのグラフは、次のプロパティをサポートしています。

パラメーター

属性
説明
必須
クラス名
グラフの完全修飾クラス名 グラフ のクラスはorg.apache.jmeter.report.processor.graph.Abs​​tractGraphConsumer
を拡張する必要があります 。 詳細については 、デフォルト グラフ セクション を参照してください。
はい
exclude_controllers
グラフがコントローラ サンプルを破棄するかどうかを定義します。デフォルト: false
いいえ
題名
グラフのタイトルを設定します。デフォルト: ""
いいえ

14.2.3.2 特定のプロパティ

特定のグラフ プロパティには、次のプレフィックスを使用する必要があります。

jmeter.reportgenerator.graph.<graph_id>.property
プロパティの名前はキャメルケース変換を使用してマップされ、クラスの一致するメソッドがプロパティ値を引数として呼び出されます。

例えば:

jmeter.reportgenerator.graph.<graph_id>.property.set_granularity=150
グラフのインスタンスで メソッドsetGranularity(150) の呼び出しを誘導します。

14.2.4 エクスポート設定

エクスポーター構成を記述する各プロパティには、接頭辞を付ける必要があります

jmeter.reportgenerator.exporter
輸出業者の識別子が続きます。

14.2.4.1 一般プロパティ

すべてのエクスポーターは、次のプロパティをサポートしています。

パラメーター

属性
説明
必須
クラス名
エクスポータの完全修飾クラス名 エクスポータ のクラスはorg.apache.jmeter.report.dashboard.DataExporter
を実装する必要があります 。
はい
filters_only_sample_series
series_filter (以下を参照) がサンプル シリーズのみに適用される かどうかを定義します。デフォルト:
いいえ
series_filter
シリーズのフィルターを設定します。空の値はフィルタリングを無効にします。空でない場合、正規表現は(-success|-failure)?$
で終了する必要があり ます。形式: 正規表現。デフォルト: ""
いいえ
show_controllers_only
コントローラ シリーズのみを表示するかどうかを定義します。デフォルト: false
いいえ

14.2.4.2 特定のプロパティ

特定のエクスポーター プロパティはプレフィックスを使用する必要があります

jmeter.reportgenerator.exporter.<exporter_id>.property

パラメーター

属性
説明
必須
output_dir
生成された html ページの宛先ディレクトリを設定します。デフォルト:レポート出力
いいえ
template_dir
HTML ページが生成されるテンプレート ファイルのソース ディレクトリを設定します。デフォルト:レポート テンプレート
いいえ

14.2.4.3 グラフのプロパティ

グラフ プロパティを使用すると、エクスポータは一部のグラフ データを上書きできます。
次のプレフィックスを使用する必要があります。

jmeter.reportgenerator.exporter.<exporter_id>.graph_options.<graph_id>

パラメーター

属性
説明
必須
最小X
グラフの横座標の最小値を設定します。
いいえ
最大X
グラフの最大横座標を設定します。
いいえ
ミニー
グラフの縦座標の最小値を設定します。
いいえ
最大Y
グラフの最大縦座標を設定します。
いいえ

14.2.4.4 フィルタリングメカニズム

計算前にデータを破棄する一般プロパティ セクションのフィルタリングとは異なり 、ここではフィルタリングは計算後に実行され、最終レポートを簡素化するのに役立ちます。

プロパティseries_filter を使用すると、シリーズの名前 (行のそれぞれ) に一致する正規表現を使用して、グラフのどのシリーズ (サマリー テーブルの行) をフィルター処理できます。ただし、シリーズ (それぞれの行) の名前がフィルターと一致する場合でも、他のフィルタリング プロパティの設定によって、そのシリーズが破棄される可能性があります。逆に、一致するものがない場合は、他のプロパティでそれを保持できます。

次の表は、フィルタリング プロパティの設定がどのように機能するかを示しています。

パターンマッチで捨てるケース
filter_only_sample_series グラフ/サマリーがコントローラの識別をサポート 現在のシリーズはコントローラシリーズです show_controllers_only 廃棄
間違い 間違い - 間違い 間違い
真実
- 間違い
真実
真実 間違い 間違い
真実
真実 間違い
真実
真実 間違い - 間違い
真実
- 間違い
真実
真実 間違い 間違い
真実 真実
真実 間違い 間違い
真実

パターンマッチングがない場合の滞留事例
filter_only_sample_series グラフ/サマリーがコントローラの識別をサポート 維持
間違い 間違い 間違い
真実
真実 間違い 真実
真実 間違い

不適切なフィルター構成により、空のグラフ/要約テーブルが生成される可能性があります。
  • プロパティ show_controllers_only を設定し、グラフがコントローラーを除外するように構成されている場合。
  • プロパティ series_filterがどの シリーズとも一致しない場合。

14.2.5 サンプル構成

レポート ジェネレーターをテストするために、次の構成を user.properties ファイルにコピーできます。

# レポートのタイトルを変更するには、このプロパティを構成します
#jmeter.reportgenerator.report_title=Apache JMeter ダッシュボード

# 経時グラフの粒度を変更する場合は、このパラメーターを変更します。
# 粒度は 1000 (1 秒) より大きくする必要があります。そうしないと、スループット グラフが正しくなくなります
# バグ 60149 を参照
#jmeter.reportgenerator.overall_granularity=60000

 応答時間の分布の粒度を変更する場合は、このパラメーターを変更します
# デフォルトで 100 ミリ秒に設定
#jmeter.reportgenerator.graph.responseTimeDistribution.property.set_granularity=100

# APDEX 満足度しきい値をオーバーライドする場合は、このパラメーターを変更します。
jmeter.reportgenerator.apdex_satisfied_threshold=1500

# APDEX 許容しきい値をオーバーライドする場合は、このパラメーターを変更します。
jmeter.reportgenerator.apdex_tolerated_threshold=3000

# 生成された html ページの宛先ディレクトリを設定します。世代ごとに変更することをお勧めします
# これにより、-o コマンド ライン オプションで設定された値が上書きされます
# jmeter.reportgenerator.exporter.html.property.output_dir=/tmp/test-report

# どのグラフ系列がフィルタリングされているかを示します (正規表現)
# 以下の例では、検索と注文のサンプルをフィルタリングします
# パターンの最後には常に (-success|-failure)?$ を含める必要があることに注意してください
# 1 秒あたりのトランザクション数のサフィックス トランザクションに応じて「-success」または「-failure」
# 結果について
#jmeter.reportgenerator.exporter.html.series_filter=^(検索|順序)(-成功|-失敗)?$

# シリーズ フィルターがサンプル シリーズのみに適用されるかどうかを示します
jmeter.reportgenerator.exporter.html.filters_only_sample_series=true
                    
パラメータ output_dir を環境に合わせます。

この構成により、次の場合にレポートを生成できます。

  • 時系列グラフの時間の粒度は 1 分です。
  • ADPEX 計算の満足度のしきい値は 1 秒半です。
  • ADPEX 計算の許容しきい値は 3 秒です。
  • HTML ファイルはディレクトリ/tmp/test-reportに生成されます。
  • 名前が「 s0」または「s1 」で始まるシリーズのみが表示されます。
  • 前のフィルターは、シリーズ (それぞれの行) がサンプルと一致するグラフ (それぞれの要約テーブル) にのみ適用されます

14.3 レポートの生成

レポートの生成は、サンプル ログ ファイルからスタンドアロン プロセスとして実行することも、負荷テストの実行後に自動的に実行することもできます。

14.3.1 既存のサンプル CSV ログファイルからの生成

次のコマンドを使用します。

jmeter -g <ログ ファイル> -o <出力フォルダへのパス>

14.3.2 負荷テスト後の生成

次のコマンドを使用します。

jmeter -n -t <テスト JMX ファイル> -l <​​テスト ログ ファイル> -e -o <出力フォルダーへのパス>

14.3.3 GUI ツールメニューを利用した生成

メニュー項目Tools → Generate HTML report を使用して、HTML レポートを生成できます。

図 14.1.  HTML レポート ダイアログ メニュー
図 14.1. HTML レポート ダイアログ メニュー

各パラメータについては、次の表を参照してください。

パラメーター

属性
説明
必須
結果ファイル (csv または jtl)
tes run の CSV 出力
はい
user.properties ファイル
負荷テストの実行に使用される user.properties ファイル
はい
出力ディレクトリ
レポートを作成するディレクトリ (空にする必要があります)
いいえ

出力ディレクトリが定義されていない場合、コントローラーは${JMETER_HOME}/bin/report-outputを使用します。

次に、[レポートの生成] ボタンをクリックして、情報ダイアログが表示されるのを待つ だけです。

レポートの生成に 2 分以上かかる場合は、プロパティのgenerate_report_ui.generation_timeoutを調整します

14.4 デフォルトのグラフ

この初期バージョンの制限により、各デフォルト グラフは JMeter プロパティで宣言する必要があります。それ以外の場合、グラフ ビューは空になります。

このレポート エンジンによって提供されるすべてのグラフは、パッケージ org.apache.jmeter.report.processor.graph.implにあります。

ダッシュボード ジェネレーターには、次のグラフ クラスが用意されています。

グラフ 説明 コントローラの識別をサポート
ActiveThreadsGraphConsumer このグラフは、時間の経過に伴うアクティブなスレッドの数を表します。 間違い
BytesThroughputGraphConsumer このグラフは、時間の経過に伴う送受信データのスループットを表します。 間違い
CodesPerSecondGraphConsumer このグラフは、時間の経過に伴う応答コードの割合を表しています。 間違い
HitsPerSecondGraphConsumer このグラフは、時間の経過に伴う完了したリクエストの割合を表しています。 間違い
LatencyOverTimeGraphConsumer このグラフは、時間の経過に伴う平均待ち時間を表します。 真実
ConnectTimeOverTimeGraphConsumer このグラフは、時間の経過に伴う接続時間を表します。 真実
LatencyVSRequestGraphConsumer このグラフは、現在のリクエスト数に応じた中央値と平均レイテンシ時間を表しています。 間違い
ResponseTimeDistributionGraphConsumer このグラフは、経過時間と名前に応じたサンプルの分布を表しています。 真実
ResponseTimeOverTimeGraphConsumer このグラフは、時間の経過に伴う平均応答時間を表します。 真実
ResponseTimePercentilesGraphConsumer このグラフは、経時的な経過時間のパーセンタイルを表します。 真実
ResponseTimePercentilesOverTimeGraphConsumer このグラフは、時間の経過に伴う最小/最大および 3 パーセンタイルの応答時間を示しています。 真実
ResponseTimeVSRequestGraphConsumer このグラフは、現在のリクエスト数に応じた中央値と平均応答時間を表しています。 間違い
TimeVSThreadGraphConsumer このグラフは、現在アクティブなスレッドの数に応じた平均応答時間を表します。

* で集計されたシリーズは、現在アクティブなスレッドの数に関係なく、平均応答時間を表します。これらのシリーズは、現在アクティブなスレッドの数が平均に集計されるため、1 つのポイントで表されます。したがって、これらの点について:

  • 横座標は、一連のサンプルが終了した時点で現在アクティブなスレッドの数の平均です。
  • 縦軸は、現在アクティブなスレッドの数に関係なく、一連のサンプルの応答時間の平均です。

真実
TransactionsPerSecondGraphConsumer このグラフは、時間の経過に伴うサンプル名ごとのトランザクション率を表しています。 真実

14.5 経時的な税関グラフの生成

CSV の任意の sample_variable を経時的にグラフ化できます。user.properties ファイルでプロパティを設定することにより、グラフをカスタマイズできます。
ID プレフィックスcustom_を使用する必要があります。

jmeter.reportgenerator.graph.custom_<your_graph_name_id>.property.<your_option_name>
このグラフがカスタマイズされたグラフであることを指定するには:
jmeter.reportgenerator.graph.custom_<your_graph_name_id>.classname=org.apache.jmeter.report.processor.graph.impl.CustomGraphConsumer

パラメーター

属性
説明
必須
set_X_Axis
グラフの X 軸名を設定します。
はい
set_Y_Axis
グラフの Y 軸名を設定します。
はい
set_Content_Message
カーソルがグラフ上の点にあるときに表示されるメッセージを設定します。
はい
set_Sample_Variable_Name
csv でグラフ化する列の名前。
はい

変数ts-hitをグラフ化するカスタム グラフ構成の例を次に示します。

jmeter.reportgenerator.graph.custom_testGraph.classname=org.apache.jmeter.report.processor.graph.impl.CustomGraphConsumer
jmeter.reportgenerator.graph.custom_testGraph.title=チャンクヒット
jmeter.reportgenerator.graph.custom_testGraph.property.set_Y_Axis=ヒット数
jmeter.reportgenerator.graph.custom_testGraph.set_X_Axis=経過時間
jmeter.reportgenerator.graph.custom_testGraph.property.set_granularity=60000
jmeter.reportgenerator.graph.custom_testGraph.property.set_Sample_Variable_Name=ts-hit
jmeter.reportgenerator.graph.custom_testGraph.property.set_Content_Message=ヒット数:
                        

14.6 レポートダッシュボードを改善したいですか?

新しいグラフに貢献したり、現在のグラフを改善したりしたい場合は、この開発者ドキュメントを読むことができます。貢献 については、
このドキュメントをお読みください。
Go to top