説明環境
うぃんどうずでした。残念。
- OS:Windows8.1
- ブラウザ:IE11
参考サイト
大変参考になりました。ありがとうございます。
- http://www.techscore.com/tech/Java/ApacheJakarta/JMeter/index/
- http://d.hatena.ne.jp/language_and_engineering/20081014/1223905380
- http://normalian.hatenablog.com/entry/20121212/1355695978
JMeterとは
負荷テストを行うためのアプリ。このページ からダウンロードできる。
ダウンロードしたファイルは、念のためにスペースと全角文字が含まれない場所に配置する。(c:\jmeter など)
また、JREが必要なので別途インストールしておくこと。(PATHを通しておくことも忘れずに)
テスト対象について
- ASP.NET製(バージョン2.0, WebForms, ViewState, ポストバックの嵐 ... )
- ログインしての利用を前提
- Sessionで状態管理
使い方(基本)
大まかな流れとしては、テスト手順の記録→テスト開始→結果確認 となる。
単純なページアクセスだけであれば、テスト手順を手動で作成するので問題ない。
今回は要ログイン・テスト手順に複雑なページ遷移が含まれるため、このような手順としている。
なお、テスト対象WEBサーバーとは別端末でのテストを推奨。(負荷負荷になって正しくテストできないよ)
0. JMeterの起動
/bin/jmeterw.cmd ダブルクリックでアプリが起動する。GUIアプリなので安心!
1. スレッドグループの作成
テスト計画ツリー右クリック 追加→Threads(Users)→スレッドグループ 選択する。追加後、適当な名前を付けておく。
2.プロキシサーバーの設定
テスト手順の記録を行う準備として、HTTPプロキシサーバーを追加する。詳細手順は このページ を参照。
次に、記録時にプロキシ経由とするために、IEのインターネットオプションからプロキシサーバー設定を行う。
アドレスは127.0.0.1、ポートはHTTPプロキシサーバーと同じものを指定する。
次に「対象となるコントローラ」 から先ほど追加したスレッドグループを選択する。
3.テスト手順の記録
どのようなテストを行うか決まったら、HTTPプロキシサーバーの開始ボタンクリックする。
開始後に行われたHTTP通信は全て記録され、テスト手順に組み込まれるので、余計なWEBページアクセスは行わないこと。
終了ボタンクリックで記録が終了され、「対象となるコントローラー」に操作記録が吐き出される。
終了後は、IEのインターネットオプションのプロキシサーバー設定を元に戻すのを忘れないこと!!
4.テスト結果表示リスナーの追加
テスト計画ツリー右クリック 追加→リスナー→結果の概要を生成 を選択する。
結果の表現毎に「結果~」「統計~」リスナーが用意されているので必要に応じて追加する。
5.テストの実行
実行メニューから開始を選択すると、テストが実行される。テスト前に設定内容確認のダイアログが表示されるので保存しておくとよい。
(設定を誤ると場合によっては超高負荷テストとなり、JMeterが強制終了するとのこと。もちろん設定内容も吹き飛ぶ。)
6.テスト結果の表示
追加したテスト結果表示リスナー, WEBサーバーの各種ログ からテスト結果を解析する。
使い方(応用)
随時更新
負荷テストを行う
スレッドグループの設定を調整することで同時アクセス数や実施回数の設定を行うことが可能。
|項目名|詳細|
|:--|:--|:--|
|スレッド数|最終的なリクエスト数|
|Ramp-Up期間(秒)|ページアクセスの間隔。スレッド数÷間隔 が1アクセスで同時に行われるリクエスト数となる。 |
|ループ回数|テストの実施回数。無限ループにチェックを入れると無限に行う。|
リクエストパラメーターの外出し
「リクエスト毎にログインユーザーID、パスワードの組み合わせを変えたい」などに対応するため、
パラメーター情報を別ファイルから読み込むことが可能。ファイルはカンマ区切りのCSVファイルで1リクエスト時の情報を1行に記述する。
以降は下記logininfo.csvを読み込む場合について記述する。
user1,aaaaaa
user2,bbbbbb
user3,ccccccc
user4,dddddd
-
スレッドグループ右クリック 追加→設定エレメント→CSV Data Set Config を選択する。
-
「Filename」にcsvファイルのフルパスを設定する。
-
「Variable Names (comma-delimited)」に項目名をカンマ区切りで設定する。 ここでは "userid,password" と設定する。
-
HTTPリクエストのサンプラーでパラメーター値に ${項目名} をセットすることでcsvファイル値にアクセス可能になる。(クエリパラメーターにもセット可能)
セッションを使えるようにする
初期状態ではクッキーが使えない。ということはセッションも使えない。別途設定が必要になる。
スレッドグループ右クリック 追加→設定エレメント→HTTPクッキーマネージャー を選択する。
(特に設定無しで使えたため、詳細は不明)