JMeterについてもう一歩進んでみる
以前 JMeterについて調べてみた - oknknicの日記 で、JMeterの基本中の基本の操作について書いた。
今回は、もう一歩進んで、実際に利用する際の視点で書いてみる。
WEBアプリ負荷テストの観点
JMeterでできること
基本的な設定
複数台のマシンからリクエストを送出する
ノートPC1台で同時送出できるリクエストは、マシンの性能を考えると50〜100程度のよう。
そのため、それ以上のリクエストを同時に送出したい場合は、複数台のマシンを連携させて用いる。
(※厳密には同時ではない。厳密に同時にするにはサーバサイド側にも小細工が必要である)
設定方法は、ざっくりいうと下記の通り。
- コントローラ1台:jmeter.propertiesにコントロール対象のマシンのIPアドレスを記述の上、ApacheJMeter.jarを起動
- コントロールされる側n台:jmeter-serverを起動
詳細な手順は下記の通り。
1. コントロールされる側n台でjmeter-serverを起動
binで下記を実行。(※jmeter-serverはrmiregistryを起動するため、jre以下のrmiregistryにパスが通っている必要がある)
jmeter-server
2. コントローラのマシンで、コントロール対象のマシンを登録
bin/jmeter.propertiesを下記のように編集。
remote_hosts=192.168.30.1,192.168.30.2
3. コントローラのマシンでJMeterを起動
4. メニュー>実行>全て開始(リモート)
ログイン→処理→・・・→ログアウト を計測する
ロジックコントローラを用いる。⇒参考サイト:4. ロジックコントローラ | TECHSCORE(テックスコア)
ブラウザ操作によるシナリオ生成
JMeterのプロキシ機能を利用することで、ブラウザでの操作をシナリオとして保存することができる。
1. スレッドグループに記録コントローラを追加(ロジックコントローラ>記録コントローラ)
2. ワークベンチにプロキシサーバを追加(追加>Non test エレメント>HTTPプロキシサーバ)
3. 「対象となるコントローラ」を「スレッドグループ>記録コントローラ」に設定し、開始ボタンを押下
4. WebブラウザのプロキシをJMeterに設定する(※「ローカルアドレスにはプロキシサーバを使用しない」をOFF、例外サイトから対象アドレスを外しておくこと)
5. JMeterで記録コントローラを選択した状態で、Webブラウザで対象の操作を行う
ユーザやパスワードを外部ファイルから読み込ませる
1. ユーザパラメータの追加(前処理>ユーザパラメータ)
2. 変数の値に関数「${_StringFromFile(userId.txt)}」などを記入。変数は${変数名}で参照可能