JMeterで大量の個別ユーザを扱う

[English]

JMeterで、下図のように大量の別々のユーザを用意し、

 

それぞれが個別のユーザIDを使って、ログイン、ページアクセスを行うようなJMeterの設定方法

 

 

1.ユーザ情報(ID/Passwd)を記載したTXTファイルを用意する

ファイルの中身は、以下のようにIDとパスワードをタブ区切りとする。

user001 passwd001
user002 passwd002
user003 passwd003

 

2. JMeterを以下のように設定する

 

(1)User Defined Variable

uid,passwd 変数を追加

(2)HTTP Cookie Managerを追加

(3)Transaction Controllerを追加

(3.1.)BeahShell PreProcessorを追加。中身を以下のように記述する。

int threadNum = ${__threadNum}; 
String filename = "users.txt"; // 必要に応じてフルパスにする

String data;
BufferedReader br = new BufferedReader(new FileReader(filename));
String uid="";
String passwd="";

// 自分のスレッド番号に一致した行を読み込む
int num=0;
while((data = br.readLine())!=null){
  String[] token = data.split("\t");
  uid = token[0];
  passwd = token[1];

  num++;
  if(num == threadNum){
    break;
  }
}
br.close();

vars.put("uid",uid);
vars.put("passwd",passwd)

 

(3.2) HTTP Requestを追加

本例では、http://localhost/cgi-bin/login.cgi というURLに、id=xxx, passwd=yyy というパラメータでPOSTするとログインするような画面を想定している。

アクセスURL:http://localhost/cgi-bin/login.cgi

HTTP Request:POST

Parametersに以下を追加

uid    ${uid}

passwd    ${passwd}

 

(4)Loop Controllerを追加

(4.1)HTTP Requestを追加し、ページ1へのアクセスを追加

(4.2)HTTP Requestを追加し、ページ2へのアクセスを追加

 

user.txtの数だけスレッド数を増やすことが可能。