JMeterで大量の個別ユーザを扱う
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の数だけスレッド数を増やすことが可能。