« JMeter : https通信のサンプリング | Main | JMeter : リスナーのログ出力の設定に関して »

2008.08.11

JMeter : リスト(ファイル)を用いたアサーション

ID/PWの組み合わせでリクエストを行い、認証OKならば「xxさん、ようこそ」といったメッセージを表示するページの場合、「ID/PW/名前」のいろいろな組み合わせでテストを行うことが可能です。

JMeterでファイルから読み込む方法としては、CSVRead関数、StringFromFile関数あるいはCSV Data Set Configの3つの方法があります・・・が、実際に使うことが多いのはStringFromFileではないかと。

CSVRead関数
ファイル名と列番号を指定すると、その部分の値を取得することができます。ただ、スレッドのループ毎に値を変えることができないような(スレッド1が1行目、スレッド2が2行目・・・といった感じで固定となるようです)。また、ドキュメントによると、ファイル全体をメモリ上に乗せるため大きなファイルには使用しないように、とか、CSV Data Set Config element の方が(多くの場合は)使いやすいと思うよ、とか書かれていたりします。

StringFromFile関数
こちらは、1行につき1データという感じで読み込みます(CSVのように列の概念はないようです)。ユーザパラメータで「繰り返し毎に更新」にチェックを入れておくと、スレッド1の1ループ目に1行目、2ループ目に2行目といった感じで順次読み込んでいくようになります(ただし、「ループコントローラ」のループは対象外となるので注意)。
ユーザパラメータの画面で、以下のような感じで登録します(ファイル名は絶対パスで指定することも可能です)。


  • userid : ${__StringFromFile(userid.txt,,,)}
  • password : ${__StringFromFile(password.txt,,,)}
  • username : ${__StringFromFile(username.txt,,,)}

で、HTTPリクエストで${userid}、${password}を使ってリクエストを実行し、アサーションで${username}が含まれているかどうかのチェックをすればOKです。

CSV Data Set Config
複数のStringFromFile関数を組み合わせて冒頭のようなテストを行う場合、本来はCSV Data Set Configを用いることでサクッと1つにまとめることができる・・・はずなのですが、何故か上手く動いてくれません(version 2.3.2)。現象としては、いわゆる2バイト文字を正しく読み込めない感じ。なので、2バイト文字を含んでいなければおそらく問題なく動作するはず。
例えば、CSVに3列存在して、順番にユーザID、パスワード、ユーザ名だとした場合、


  • Filename : userlist.txt
  • File encoding : MS932
  • Variable Names : userid,password,username
  • Delimiter : ,

といった感じで指定し、HTTPリクエストで${userid}、${password}を使ってリクエストを実行し、アサーションで${username}が含まれているかどうかのチェックをすればOKです。

#2バイト文字を問題なく処理できればCSV Data Set Configの方が何かと楽ではあるのですが・・・。

|

« JMeter : https通信のサンプリング | Main | JMeter : リスナーのログ出力の設定に関して »

Java」カテゴリの記事

Comments

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack


Listed below are links to weblogs that reference JMeter : リスト(ファイル)を用いたアサーション:

« JMeter : https通信のサンプリング | Main | JMeter : リスナーのログ出力の設定に関して »