Programming Self-Study Notebook

勉強したことを忘れないように! 思い出せるように!!

JMeterでcsvファイルからパラメータを読み込む方法

f:id:overworker:20200422002101p:plain

久しぶりにJMeterのノートを書きたくなりましたので、前々からまとめておきたかったcsvファイルからパラメータを読み込む方法をまとめてみました。

テスト計画への追加

概要

  • 自作した変数に対し読み込んだ値を割り当て、テスト内で使用することができます。
  • テスト計画で読み込むこともできますし、サンプラーで読み込むこともできます。
f:id:overworker:20210430111333p:plain

追加方法

  • 読み込みたい所での右クリックからスタートです。
    • 追加->設定エレメント->CSV Data Set Config
f:id:overworker:20210430111123p:plain:w500

CSV Data Set Configの設定内容

f:id:overworker:20210430122505p:plain:w500

 ①:名前

  • GUI上のテスト計画ツリー(左側)のタイトル表示部分が連動します。

 ②:コメント

  • どこに影響するか不明です。

 ③:Filename

  • 実際に読み込むcsvファイルのPathを指定します。
  • 絶対Path/相対Pathが使用可能です。
    • 相対Pathの場合、基準となるPathは以下の順序で決まるようです。
      • 優先順位①:JMeterの実体がおかれているbinフォルダ(←個人的には非推奨)
      • 優先順位②:実行ファイル(jmxファイル)がおかれたディレクト
    • 絶対Path:(←個人的には非推奨)
  • 階層の区切り文字は/\が混在していても動作するようです。
    • WindowsPCで作成したテスト計画をLinuxマシンからCLI実行しても、問題なく動作しました。

※ テストをgit等で共有する場合、共有するディレクトリ以下で相対Pathで成立する指定方法にしておく必要があります。

 ④:File encoding

  • 以下が最初から用意されています。
    • UTF-8UTF-16ISO-8859-15US-ASCII編集 
      • (私はUTF-8以外を使用したことがありません。)

 ⑤:Variable Names(comma-delimited)

※ この欄が空の場合、csvファイルの1行目を変数名として解釈させることが可能です。

  • 変数名のリスト。
  • 名前は区切り文字で区切る必要があります。
  • 二重引用符を使用して引用できます。
  • JMeterCSVヘッダー行をサポートしています。
  • 変数名フィールドが空の場合、ファイルの最初の行が読み取られ、列名のリストとして解釈されます。

 ⑥:Ignore first line(only use if Variable Names is not empty)

  • Variable Names(comma-delimited)に値がセットされている場合、csvファイルの1行目を無視することができます。

 ⑦:Delimiter(use '\t' for tab)

  • 区切り文字を指定することができます。
    • (私は,を使用しています。)

 ⑧:Allow quoted data?

  • CSVファイルで値を引用できるように指定できます。
    • 有効にすると、値を「-二重引用符-で囲むことができ、値に区切り文字を含めることができます。

 ⑨:Recycle on EOF?

  • 通常は一回のCSV Data Set Config実行でcsvファイルを1行読み込みます。
    • CSV Data Set Config実行回数が、対象ファイルの行数を超えた場合に、先頭行に戻って指定パラメータの値を更新します。

 ⑩:Stop thread on EOF?

  • ⑨がfalseの時のみ、セットした値が有効になります。
    • ファイルの読み込みが最終行に到達した時点で、スレッドを終了します。

 ⑪:Sharing mode

  • 以下の4つから選択することが可能です。
    • All threads:すべてのスレッドでシェアされます
    • Current thread group:スレッドグループごとに管理されます
    • Current thread:スレッドごとに管理されます
    • Identifier:すべて個別に管理されます。スレッド番号を使用して、異なるスレッドグループの同じスレッド番号間でファイルを共有することもできます。

参考資料

Apache JMeter - User's Manual: Component Reference