【負荷テスト】 【JMeter】JMeter ~ CSV読み込み編 ~

■ はじめに

https://blogs.yahoo.co.jp/dk521123/36908158.html
https://blogs.yahoo.co.jp/dk521123/36910281.html
の続き。

例えば、1万ユーザで別々のアカウントでログインした場合のテストをしたいってなったら物凄い面倒くさい。
しかし、1万ユーザおよびそのパスワードを例えば、CSVファイルで記載して
そのデータを入力データとした場合、手間が大分軽減できる。
 => そんな訳で、そんなことを行う。

■ 手順

前提

[1] 以下の関連記事の手順を行っていること
https://blogs.yahoo.co.jp/dk521123/36908158.html
[2] 読み込ませたいCSVファイルを用意しておく
  (ここでは「C:\temp\soapInput.csv」にあり、
      ファイルの内容は、以下の「soapInput.csvCSVファイル・サンプル)」の通り)
soapInput.csvCSVファイル・サンプル)
Mike,23
Tom,43
Smith,32
Kevin,21
Amy,15

構成・設定前

[TestPlan]
  + [User Defined Variables] (ユーザー定義変数) 
  + [HTTP Request Defaults](HTTPリクエスト初期値設定)
  + [Number of Users](スレッドグループ)
  |   + [Soap Request] (HTTPリクエスト) 
  |      + [HTTP Header Manager] (HTTPヘッダマネージャ) 
  |      + [Response Assertion] (アサーション) ... レスポンス結果の正当性を設定できる
  + [View Results Tree] (結果をツリーで表示)
  + [Aggregate Graph]
[ワークベンチ]

設定・手順

[1] [Soap Request]を右クリックし、[追加]-[設定エレメント]-[CSV Data Set Config]を選択を選択
[2] [CSV Data Set Config]を開き、以下の「CSV Data Set Configに関する説明および設定例」を参考に、
    設定値を埋めていく
[3] [Soap Request]を開き、[Basic]-[Body Data]のSOAPデータを
    以下の「Body Data(サンプル)」を参考に設定する
[4] [Number of Users]を開き、ループ回数などを設定する(ここでは、「ループ回数:5」)

 => 後は、[実行]-[開始]を選択し、テスト開始するだけ

構成・一部抜粋(CSV読み込み)

+ [Number of Users](スレッドグループ)
   + [Soap Request] (HTTPリクエスト)
      + [HTTP Header Manager] (HTTPヘッダマネージャ)
      + [Response Assertion] (アサーション)
      + [CSV Data Set Config] ... ★新規追加する★ CSVファイル読み込むための設定画面。

CSV Data Set Configに関する説明および設定例

`#`項目`説明`設定例備考
01名前ツリーに表示される名前CSV Data Set Config-
02コメントコメント文(なし)-
03Filename読み込むCSVファイルパスC:\temp\soapInput.csv-
04File encodingCSVファイルのエンコード(なし)-
05Variable NamesJMeterで使用するCSVから得た変数名name,age★ここがキモ★
06Delimiter区切り文字,タブの場合は\t
07Allow quoted data?ダブルクォートを含むかFalse-
08Recycle on EOF?Trueにすると、ファイルの終了に達したら先頭行から取り直すTrue-
09Stop thread on OEF?Trueにすると、ファイルの終了に達したら終了False-
10Sharing modeどの範囲でCSVファイルをCurrent thread-

Body Data(サンプル)

Webサービスの引数を、${name}、${age}に置き換え、CSVファイルから取得した値を設定する
<?xml version="1.0"  standalone="no"?>
<S:Envelope xmlns:S="">http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns2:sayYourAge xmlns:ns2="">http://webservice.sample.com/">
<name>${name}</name>
<age>${age}</age>
</ns2:sayYourAge>
</S:Body>
</S:Envelope>

レスポンス

ループ1回目
<!--?xml version='1.0' encoding='UTF-8'?-->
<html>
 <head></head>
 <body>
  <s:envelope xmlns:s="">http://schemas.xmlsoap.org/soap/envelope/">
   <s:body>
    <ns2:sayyourageresponse xmlns:ns2="">http://webservice.sample.com/">
     <return>
      [1] Mike's age is 23.
     </return>
    </ns2:sayyourageresponse>
   </s:body>
  </s:envelope>
 </body>
</html>
ループ5回目
<!--?xml version='1.0' encoding='UTF-8'?-->
<html>
 <head></head>
 <body>
  <s:envelope xmlns:s="">http://schemas.xmlsoap.org/soap/envelope/">
   <s:body>
    <ns2:sayyourageresponse xmlns:ns2="">http://webservice.sample.com/">
     <return>
      [5] Amy's age is 15.
     </return>
    </ns2:sayyourageresponse>
   </s:body>
  </s:envelope>
 </body>
</html>


関連記事

【負荷テスト】 【JMeterJMeter ~ 基礎知識編 ~

https://blogs.yahoo.co.jp/dk521123/37336527.html

【負荷テスト】 【JMeterJMeterWindows環境構築編 ~

https://blogs.yahoo.co.jp/dk521123/37280266.html

Webサービス / Metro [1] ~入門編 / サーバサイドの構築 ~

https://blogs.yahoo.co.jp/dk521123/36139336.html