JMeterのTips

最近、WEBアプリケーションの負荷テストでJMeterをいじったので、ちょっと悩んだところまとめ。

jakarta-jmeter-2.3RC4」と「jdk1.5.0_11」での話。

SSLを使うときの設定

1.「オプション」→「SSLマネージャ」で「${JAVA_HOME}\jre\lib\security\cacerts」を選択。
2.HTTPリクエストのサンプラーを選択して表示される「プロトコル」を「HTTPS」に設定。
3.テスト実行の際にパスワードの入力を促されたら「changeit」と入力。(デフォルトのKeyStoreパスワードはchangeitだから)

前の画面遷移のレスポンスで帰ってきたパラメータを次の画面遷移で渡したいとき

(例えばTOKENていう名前のhiddenパラメータを渡すとき)
1.前画面遷移のHTTPリクエストのサンプラーを「右クリック」→「追加」→「後処理」→「正規表現抽出」で表示される画面で以下を設定。

項目名 設定値
Response Field to check Body
参照名 hidden_TOKEN
正規表現 <input type="hidden" name="TOKEN" value="(.*?)"/>
テンプレート $1$
一致番号(0から乱数) 0

2.次画面遷移のHTTPリクエストのサンプラーを選択して表示される「リクエストで送るパラメータ」を以下のように設定。

名前
TOKEN ${hidden_TOKEN}

リダイレクトの遷移を行う

1.HTTPリクエストのサンプラーを選択して表示される「自動リダイレクト」じゃなくて「リダイレクトに対応」にチェックを入れる。

ブラウザで操作した画面遷移リクエストをJMeterに自動記録させる。

1.ワークベンチを「右クリック」→「追加」→「Non-Testエレメント」→「HTTPプロキシサーバ」
2.IEの「ツール」→「インターネットオプション」→「接続」→「LANの設定」→「プロキシサーバー」にチェックし以下のように設定。

アドレス localhost
ポート JMeterのHTTPプロキシサーバ設定のポートと同一

3.JMeterのHTTPプロキシサーバ設定画面の「開始」ボタンをクリックする。
4.IEでテストシナリオに従った操作をする。
5.JMeterのHTTPプロキシサーバ設定画面の「停止」ボタンをクリックすると記録完了。
※ただし、SSL通信の画面は記録できない。けど、例えば、ログイン認証だけSSL通信をやっているなら、ブラウザでログイン後の画面まで遷移してから、上記の操作を開始すればOK。

複数のユーザーの同一画面遷移をテストする(ユーザーID:00000〜00010、パスワード:x0000〜x0010の10人のユーザーの場合)

1.ユーザーID、パスワードの末尾だけが連番で異なるユーザーデータを準備する。
2.スレッドグループを「右クリック」→「追加」→「設定エレメント」→「ユーザー定義変数」で表示される画面でユーザーID、パスワードの前方同一部分文字列を以下のように設定。

名前
USER_ID_PREFIX 000
PASSWORD_PREFIX x00

3.HTTPリクエストのサンプラーを「右クリック」→「追加」→「前処理」→「カウンタ」で表示される画面で以下のように設定。

項目名 設定値
開始 0
増分 1
最大値 10
Number format 00
参照名 USER_ID_SUFFIX

4.ログインするHTTPリクエストのサンプラーを選択して表示される「リクエストで送るパラメータ」を以下のように設定。

名前
username ${USER_ID_PREFIX}${USER_ID_SUFFIX}
password ${PASSWORD_PREFIX}${USER_ID_SUFFIX}

このように複数のユーザー単位に複数スレッドグループを作成せずに、1つのスレッドグループにカウンタを設定したほうがいいです。
なぜなら、スレッドグループをクリックして表示される「スレッド数」を変えるだけでユーザー数を変えられるから。

スレッド数 アクセスするユーザ
1 00000のユーザ
10 00000〜00010のユーザ
99 00000〜00099のユーザ