Apache JMeter というツールがあり、こいつは用意したシナリオに従って HTTP の操作などをやってくれる。
Webアプリにログインしてある一定の操作を行ってログアウトするのを一気に何百スレッドも流すみたいな負荷テストを行ったりできる素敵なツールである。
JMeter を使うにあたってまずは準備。だいたい共通する部分で、コレはどの場合でもだいたいやっておくという部分を書いてみる。
■準備 1 : 取得してきて展開
JDK をインストールしてある環境にて、Apache JMeter から ZIP なり TGZ なり好きなアーカイブをダウンロードしてきて、適当なフォルダに展開する。
■準備 2 : 起動
Windows 環境での例。展開したフォルダの bin フォルダ内にある jmeter.bat をダブルクリックで起動。
■準備 3 : いくつか準備する
テスト計画を右クリックして以下の4つを作る。
「追加」→「Threads(Users)」→「スレッドグループ」
「追加」→「設定エレメント」→「HTTPヘッダマネージャ」
「追加」→「アサーション」→「結果をツリーで表示」
「追加」→「アサーション」→「応答をファイルへ保存」
■準備 4 : HTTP ヘッダマネージャへのヘッダ設定
ブラウザのフリをするために必要。ブラウザがHTTPリクエスト時によく出力する値を入れておく。User-Agent とかが定番である。今回の処理でなりきりたい User-Agent を入れておくと良いでしょう。
■準備 5 : 結果をツリーで表示
処理結果がツリー上に表示される場所を準備しておく。JMeter は何も指定しないと何も出力しないので、どのような処理をしたか出力する場所を用意する。パラメータなど特段設定しなくてよい。何らかの処理をすると、この画面の下の方に処理した結果が表示される。確認のために必要。
■準備 6 : 応答ファイルの保存設定
相手からのレスポンスをファイルに保存することができる。HTMLをブラウザに食わせて表示を確認するなどに使えるので、デバッグ初期段階などは設定しておくとよい。上記の「結果をツリーで表示」で事足りるならここは必要無い。
「ファイル名の接頭辞」欄は、なくてもいいけど何か入れておくとあとでわかりやすい。例えば「_res_」と入れてみた。
たとえば、上記の「結果をツリーで表示」に出ているツリーの6項目がファイルに保存されるとこのようになる。「ファイル名の接頭辞」で指定した「_res_」ではじまるファイルが生成される。ソートしたときカタマリになるので分かりやすいんじゃないかな。
とりあえずなにをするにも用意しておいたほうが良さそうな事前準備終わり。