12. リスナーの紹介

リスナーは、サンプルの結果を表示するコンポーネントです。結果は、ツリー、テーブル、グラフで表示するか、単にログ ファイルに書き込むことができます。特定のサンプラーからの応答の内容を表示するには、Listener " View Results Tree " または " View Results in table " のいずれかをテスト計画に追加します。応答時間をグラフで表示するには、グラフの結果を追加します。コンポーネント ページのリスナー セクションには、すべてのリスナーの完全な説明があります。

異なるリスナーは、異なる方法で応答情報を表示します。ただし、出力ファイルが指定されている場合、それらはすべて同じ生データを出力ファイルに書き込みます。

[構成] ボタンを使用して、ファイルに書き込むフィールドと、それを CSV または XML として書き込むかどうかを指定できます。CSV ファイルは XML ファイルよりもはるかに小さいため、大量のサンプルを生成する場合は CSV を使用してください。

ファイル名は、相対パス名または絶対パス名のいずれかを使用して指定できます。相対パスは、現在の作業ディレクトリ (デフォルトはbin/ディレクトリ) に対して相対的に解決されます。JMeter は、現在のテスト計画 (JMX ファイル) を含むディレクトリへの相対パスもサポートしています。パス名が " ~/ " (またはjmeter.save.saveservice.base_prefix JMeter プロパティにあるもの) で始まる場合、パスは JMX ファイルの場所からの相対パスであると想定されます。

特定のサンプルのみを録音したい場合は、リスナーをサンプラーの子として追加します。または、Simple Controller を使用して一連のサンプラーをグループ化し、それにリスナーを追加することもできます。複数のサンプラーで同じファイル名を使用できますが、すべてのサンプラーが同じ構成を使用していることを確認してください。

12.1 デフォルト設定

保存されるデフォルトの項目は、jmeter.properties (またはuser.properties ) ファイルで定義できます。プロパティは、Listener Config ポップアップの初期設定として使用され、-lコマンドライン フラグで指定されたログ ファイルにも使用されます (一般的に CLI モードのテスト実行に使用されます)。

デフォルトの形式を変更するには、jmeter.propertiesで次の行を見つけます。

jmeter.save.saveservice.output_format=

保存する情報は設定可能です。最大限の情報を得るには、形式として「 xml 」を選択し、テスト計画要素で「 Functional Test Mode 」を指定します。このボックスがチェックされていない場合、デフォルトの保存データにはタイムスタンプ (UTC 1970 年 1 月 1 日午前 0 時からのミリ秒数)、データ型、スレッド名、ラベル、応答時間、メッセージ、およびコードが含まれます。そして成功の指標。オンにすると、完全な応答データを含むすべての情報がログに記録されます。

次の例は、次のような結果を出力する縦棒 (" | ") で区切られた形式を取得するプロパティを設定する方法を示しています。

タイムスタンプ|時間|ラベル|応答コード|スレッド名|データタイプ|成功|失敗メッセージ
02/06/03 08:21:42|1187|ホーム|200|スレッドグループ-1|テキスト|true|
02/06/03 08:21:42|47|ログイン|200|スレッド グループ 1|テキスト|false|テストに失敗しました:
    含まれていると予想される:パスワードなど

設定する必要がある 対応するjmeter.propertiesを以下に示します。この例の奇妙な点の 1 つは、通常、コンマ区切り値を示すoutput_formatがcsvに設定されていることです。ただし、default_delimiterはカンマではなく縦棒に設定されているため、この場合、csv タグは誤称です。(CSV は、文字で区切られた値を意味すると考えてください)

jmeter.save.saveservice.output_format=csv
jmeter.save.saveservice.assertion_results_failure_message=true
jmeter.save.saveservice.default_delimiter=|

結果ファイルの出力に影響を与えるプロパティの完全なセットを以下に示します。

#------------------------------------------------- --------------------------
# 結果ファイル構成
#------------------------------------------------- --------------------------

# このセクションは、結果データの保存方法を決定するのに役立ちます。
# コメントアウトされた値はデフォルトです。

# 正当な値: xml、csv、db。現在、xml と csv のみがサポートされています。
#jmeter.save.saveservice.output_format=csv


# フィールドを保存する必要がある場合は true。それ以外の場合は false

# assertion_results_failure_message は CSV 出力のみに影響します
#jmeter.save.saveservice.assertion_results_failure_message=true
#
# 正当な値: none、first、all
#jmeter.save.saveservice.assertion_results=なし
#
#jmeter.save.saveservice.data_type=true
#jmeter.save.saveservice.label=true
#jmeter.save.saveservice.response_code=true
# response_data は現在、CSV 出力ではサポートされていません
#jmeter.save.saveservice.response_data=false
# 失敗したサンプルの ResponseData を保存
#jmeter.save.saveservice.response_data.on_error=false
#jmeter.save.saveservice.response_message=true
#jmeter.save.saveservice.successful=true
#jmeter.save.saveservice.thread_name=true
#jmeter.save.saveservice.time=true
#jmeter.save.saveservice.subresults=true
#jmeter.save.saveservice.assertions=true
#jmeter.save.saveservice.latency=true
#jmeter.save.saveservice.connect_time=true
#jmeter.save.saveservice.samplerData=false
#jmeter.save.saveservice.responseHeaders=false
#jmeter.save.saveservice.requestHeaders=false
#jmeter.save.saveservice.encoding=false
#jmeter.save.saveservice.bytes=true
#jmeter.save.saveservice.sent_bytes=true
#jmeter.save.saveservice.url=false
#jmeter.save.saveservice.filename=false
#jmeter.save.saveservice.hostname=false
#jmeter.save.saveservice.thread_counts=true
#jmeter.save.saveservice.sample_count=false
#jmeter.save.saveservice.idle_time=true

# タイムスタンプ形式 - これは CSV 出力ファイルにのみ影響します
# 正当な値: none、ms、または SimpleDateFormat に適した形式
#jmeter.save.saveservice.timestamp_format=ms
#jmeter.save.saveservice.timestamp_format=yyyy/MM/dd HH:mm:ss.SSS

# コンマ区切り値 (CSV) ファイルまたはその他の形式で使用する場合
# フィールドの値は、指定された区切り文字で区切られています。
# デフォルト:
#jmeter.save.saveservice.default_delimiter=,
# TAB の場合、JMeter 2.3 以降では以下を使用できます。
#jmeter.save.saveservice.default_delimiter=\t

# CSV 形式のファイルにのみ適用:
# フィールド名を CSV の 1 行目に出力
#jmeter.save.saveservice.print_field_names=true

# 結果データ ファイルに値を保存する JMeter 変数名のオプション リスト。
# コンマを使用して名前を区切ります。例えば:
#sample_variables=SESSION_ID,REFERENCE
# NB 現在の実装では、値を XML に属性として保存します。
# そのため、名前は有効な XML 名でなければなりません。
# JMeter は変数をすべてのサーバーに送信します
# 正しいデータがクライアントで利用可能であることを確認します。

# ファイルの 2 行目のオプションの xml 処理命令:
#jmeter.save.saveservice.xml_pi=<?xml-stylesheet type="text/xsl" href="sample.xsl"?>

# 現在のベースに関連するファイル名を識別するために使用されるプレフィックス
#jmeter.save.saveservice.base_prefix=~/

# XML または CSV 出力で記述された各行の AutoFlush
# これを true に設定すると、クラッシュの場合にテスト結果のデータ損失が少なくなります
# ただし、特に集中的なテスト (一時停止が少ないかまったくない) の場合、パフォーマンスに影響があります
# JMeter 2.10 以降、これはデフォルトで false です
#jmeter.save.saveservice.autoflush=false

# 終了の代わりに開始タイム スタンプをログに記録する
sampleresult.timestamp.start=true

# System.nanoTime() を使用するかどうか - それ以外の場合は System.currentTimeMillis() のみを使用します
#sampleresult.useNanoTime=true

# バックグラウンド スレッドを使用して、nanoTime オフセットを計算します
# バックグラウンド スレッドを無効にするには、これを ≤ 0 に設定します
#sampleresult.nanoThreadSleep=5000

timestamp_format に使用される日付形式はSimpleDateFormatで説明されています。タイムスタンプ形式は、ファイルの書き込みと読み取りの両方に使用されます。形式が「ms」に設定されていて、列が長整数として解析されない場合、JMeter (2.9+) は次の形式を試します。

  • yyyy/MM/dd HH:mm:ss.SSS
  • yyyy/MM/dd HH:mm:ss
  • yyyy-MM-dd HH:mm:ss.SSS
  • yyyy-MM-dd HH:mm:ss
  • MM/dd/yy HH:mm:ss (これは以前のバージョンとの互換性のためであり、形式としては推奨されません)
マッチングも厳格になりました (寛大ではありません)。JMeter 2.8 およびそれ以前では、タイムスタンプの日付が不正確になる可能性がある寛大なモードが使用されていました (時刻は通常、正確でした)。

12.1.1 サンプル変数

JMeter は、sample_variables プロパティをサポートして、JTL ファイル内の各サンプルと共に保存される追加の JMeter 変数のリストを定義します。値は、追加の列として、および XML ファイルの追加の属性として CSV ファイルに書き込まれます。例については、上記を参照してください。

12.1.2 サンプル結果保存設定

以下に示すように、構成ポップアップを使用して、さまざまな項目を結果ログ ファイル (JTL) に保存するようにリスナーを構成できます。デフォルトは、上記の「リスナーのデフォルト設定」セクションで説明したように定義されています。名前の後に (CSV) が付いている項目は、CSV 形式にのみ適用されます。(XML) が付いている項目は、XML 形式にのみ適用されます。現在、CSV 形式を使用して改行を含むアイテムを保存することはできません。


設定ダイアログ

Cookie、メソッド、およびクエリ文字列は、「Sampler Data」オプションの一部として保存されることに注意してください。

12.2 CLI モード (バッチ) のテスト実行

CLI モードで実行する場合、-lフラグを使用して、テスト実行用の最上位リスナーを作成できます。これは、テスト計画で定義されたリスナーに追加されます。このリスナーの構成は 、前のセクションで説明したように 、ファイルjmeter.propertiesのエントリによって制御されます。

この機能を使用して、テストの実行ごとに異なるデータとログ ファイルを指定できます。次に例を示します。

jmeter -n -t testplan.jmx -l testplan_01.jtl -j testplan_01.log
jmeter -n -t testplan.jmx -l testplan_02.jtl -j testplan_02.log

JMeter のログ メッセージは、デフォルトでファイルjmeter.logに書き込まれることに注意してください。このファイルは毎回再作成されるため、実行ごとにログ ファイルを保持する場合は、上記のように-jオプションを使用して名前を変更する必要があります。

JMeter は、ログ ファイル名で変数をサポートしています。ファイル名に一対の一重引用符が含まれている場合、名前は現在の日付に適用されるSimpleDateFormat形式として処理されます (例: log_file='jmeter_'yyyyMMddHHmmss'.tmp' )。これを使用して、テスト実行ごとに一意の名前を生成できます。

12.3 リソースの使用

多くのサンプルがある場合、リスナーは大量のメモリを使用する可能性があります。

現在、ほとんどのリスナーは、表示するすべてのサンプルのコピーを保持しています。

  • シンプルデータライタ
  • BeanShell/JSR223 リスナー
  • メーラー ビジュアライザー
  • 結果の監視
  • 概略報告

次のリスナーは、すべてのサンプルのコピーを保持する必要がなくなりました。代わりに、同じ経過時間のサンプルが集計されます。特にほとんどのサンプルがせい​​ぜい 1 ~ 2 秒しかかからない場合は、必要なメモリが少なくて済みます。

  • 集計レポート
  • 集計グラフ

必要なメモリ量を最小限に抑えるには、Simple Data Writer を使用し、CSV 形式を使用します。

12.4 CSVログ形式

CSV ログ形式は、構成で選択されているデータ項目によって異なります。指定されたデータ項目のみがファイルに記録されます。列の出現順序は固定されており、次のとおりです。

  • timeStamp - 1970 年 1 月 1 日からのミリ秒
  • 経過- ミリ秒単位
  • label - サンプラーのラベル
  • responseCode - 例: 200404
  • responseMessage - 例: OK
  • スレッド名
  • dataType - 例:テキスト
  • 成功- trueまたはfalse
  • failureMessage - 存在する場合
  • bytes - サンプルのバイト数
  • sentBytes - サンプル用に送信されたバイト数
  • grpThreads - このスレッド グループ内のアクティブなスレッドの数
  • allThreads - すべてのグループのアクティブなスレッドの総数
  • URL
  • ファイル名- [応答をファイルに保存]が使用された場合
  • 待ち時間- 最初の応答までの時間
  • connect - 接続を確立する時間
  • エンコーディング
  • SampleCount - サンプル数 (複数のサンプルが集計されない限り、1)
  • ErrorCount - エラー数 (複数のサンプルが集計されていない限り、0 または 1)
  • ホスト名- サンプルが生成された場所
  • IdleTime - 「アイドル」時間のミリ秒数 (通常は 0)
  • 変数(指定されている場合)

12.5 XML ログ形式 2.1

更新された XML (2.1) の形式は次のとおりです (改行は異なります)。

<?xml version="1.0" encoding="UTF-8"?>
<testResults バージョン="1.2">

-- ネストされたサンプルを含む HTTP サンプル

<httpSample t="1392" lt="351" ts="1144371014619" s="true"
     lb="HTTP リクエスト" rc="200" rm="OK"
     tn="Listen 1-1" dt="text" de="iso-8859-1" by="12407">
  <httpSample t="170" lt="170" ts="1144371015471" s="true"
        lb="http://www.apache.org/style/style.css" rc="200" rm="OK"
        tn="Listen 1-1" dt="text" de="ISO-8859-1" by="1002">
    <responseHeader class="java.lang.String">HTTP/1.1 200 OK
日付: 2006 年 4 月 7 日金曜日 00:50:14 GMT
⋮
コンテンツタイプ: text/css
</応答ヘッダー>
    <requestHeader class="java.lang.String">MyHeader: MyValue</requestHeader>
    <responseData class="java.lang.String">body, td, th {
    フォントサイズ: 95%;
    font-family: Arial、Geneva、Helvetica、sans-serif。
    色: 黒;
    背景色: 白;
}
⋮
</応答データ>
    <cookies class="java.lang.String"></cookies>
    <method class="java.lang.String">GET</method>
    <queryString class="java.lang.String"></queryString>
    <url>http://www.apache.org/style/style.css</url>
  </httpサンプル>
  <httpSample t="200" lt="180" ts="1144371015641" s="true"
     lb="http://www.apache.org/images/asf_logo_wide.gif"
     rc="200" rm="OK" tn="Listen 1-1" dt="bin" de="ISO-8859-1" by="5866">
    <responseHeader class="java.lang.String">HTTP/1.1 200 OK
日付: 2006 年 4 月 7 日金曜日 00:50:14 GMT
⋮
コンテンツタイプ: image/gif
</応答ヘッダー>
    <requestHeader class="java.lang.String">MyHeader: MyValue</requestHeader>
    <responseData class="java.lang.String">http://www.apache.org/asf.gif</responseData>
      <responseFile class="java.lang.String">Mixed1.html</responseFile>
    <cookies class="java.lang.String"></cookies>
    <method class="java.lang.String">GET</method>
    <queryString class="java.lang.String"></queryString>
    <url>http://www.apache.org/asf.gif</url>
  </httpサンプル>
  <responseHeader class="java.lang.String">HTTP/1.1 200 OK
日付: 2006 年 4 月 7 日金曜日 00:50:13 GMT
⋮
コンテンツ タイプ: テキスト/html; charset=ISO-8859-1
</応答ヘッダー>
  <requestHeader class="java.lang.String">MyHeader: MyValue</requestHeader>
  <responseData class="java.lang.String"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
               "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
⋮
<html>
 <頭>
⋮
 </head>
 <本体>
⋮
 </body>
</html>
</応答データ>
  <cookies class="java.lang.String"></cookies>
  <method class="java.lang.String">GET</method>
  <queryString class="java.lang.String"></queryString>
  <url>http://www.apache.org/</url>
</httpサンプル>

-- 非 HTTP サンプル

<sample t="0" lt="0" ts="1144372616082" s="true" lb="サンプラーの例"
    rc="200" rm="OK" tn="Listen 1-1" dt="text" de="ISO-8859-1" by="10">
  <responseHeader class="java.lang.String"></responseHeader>
  <requestHeader class="java.lang.String"></requestHeader>
  <responseData class="java.lang.String">1-1 を聞く</responseData>
  <responseFile class="java.lang.String">Mixed2.unknown</responseFile>
  <samplerData class="java.lang.String">ssssss</samplerData>
</サンプル>

</テスト結果>

サンプル ノード名は、「sample」または「httpSample」のいずれかであることに注意してください。

12.6 XML ログ形式 2.2

JTL ファイルの形式は、2.2 と 2.1 で同じです。Format 2.2 は JMX ファイルにのみ影響します。

12.7 サンプル属性

サンプル属性の意味は次のとおりです。

属性コンテンツ
バイト
sby送信バイト
データのエンコード
dtデータ・タイプ
ecエラー数 (複数のサンプルが集計されていない限り、0 または 1)
サンプルが生成されたホスト名
それアイドル時間 = サンプリングに費やされなかった時間 (ミリ秒) (通常は 0)
ポンドラベル
それ待ち時間 = 初期応答までの時間 (ミリ秒) - すべてのサンプラーがこれをサポートしているわけではありません
ct接続時間 = 接続を確立する時間 (ミリ秒) - すべてのサンプラーがこれをサポートしているわけではありません
すべてのスレッド グループのアクティブなスレッドの数
ないこのグループ内のアクティブなスレッドの数
ラジコン応答コード (例: 200 )
RM応答メッセージ (例: OK )
s成功フラグ ( true / false )
scサンプル数 (1、複数のサンプルが集約されていない場合)
t経過時間 (ミリ秒)
tnスレッド名
TStimeStamp (UTC 1970 年 1 月 1 日午前 0 時からのミリ秒)
変数名名前付き変数の値
JMeter では、追加の変数をテスト計画と共に保存できます。現在、変数は追加の属性として保存されています。testplan 変数名は、属性名として使用されます。詳細については、サンプル変数(上記) を参照してください。

12.8 レスポンスデータの保存

上記のように、必要に応じて応答データを XML ログ ファイルに保存できます。ただし、これによりファイルがかなり大きくなる可能性があり、テキストをエンコードして有効な XML のままにする必要があります。また、画像の同梱はできません。タイプがTEXTのサンプル応答のみを保存できます。
もう 1 つの解決策は、ポスト プロセッサのSave_Responses_to_a_fileを使用することです。これにより、サンプルごとに新しいファイルが生成され、ファイル名がサンプルとともに保存されます。ファイル名は、サンプル ログ出力に含めることができます。サンプル ログ ファイルが再ロードされると、必要に応じてファイルからデータが取得されます。

12.9 レスポンスデータのロード(読み込み)

既存の結果ファイルを表示するには、[ファイル] [参照... ] ボタンを使用してファイルを選択します。必要に応じて、適切なリスナーを含むダミーのテストプランを作成してください。

結果は、XML または CSV 形式のファイルから読み取ることができます。CSV 結果ファイルから読み取る場合、ヘッダー (存在する場合) を使用して、保存されたフィールドが判別されます。 ヘッダーのない CSV ファイルを正しく解釈するには、適切な JMeter プロパティを設定する必要があります。

JMeter は、新しいファイルをロードする前に現在のデータを消去しないため、ファイルをマージできます。現在のデータをクリアしたい場合は 、ファイルをロードする前に 、メニュー項目を実行 → クリア ( Ctrl  +  Shift  +  E ) または 実行 → すべてクリア ( Ctrl  +  E ) を使用します。

12.10 リスナー GUI データの保存

JMeter では、任意のリスナーを PNG ファイルとして保存できます。これを行うには、左側のパネルでリスナーを選択します。編集 → ノードをイメージとして保存をクリックし ます。ファイルダイアログが表示されます。目的の名前を入力して、リスナーを保存します。

テーブルとして出力を生成するリスナーは、コピー/貼り付けを使用して保存することもできます。テーブル内の目的のセルを選択し、OS コピーのショートカット (通常はCtrl  +  C ) を使用します。データはクリップボードに保存され、そこからスプレッドシートやテキスト エディタなどの別のアプリケーションに貼り付けることができます。

図1 -
図 1 - [編集]  →  [ノードをイメージとして保存]
Go to top