作成 2003/2/27
更新 2004/1/25
JMeterはWebアプリケーション(HTTP)用の負荷テストツールです。テストのシナリオを用意し、実行し、その結果を解析します。結果はグラフや表で表示することができ、Webアプリのパフォーマンスが一目瞭然です。その他、JDBCやFTPのテストも用意されているようです。
http://jakarta.apache.org/から最新版のJMeterをダウンロードします。ここではjakarta-jmeter-1.9.1.zipをダウンロードしました。ダウンロードしたアーカイブを展開し、適当なディレクトリに配置します。binディレクトリのjmeter.batからJMeterを起動します。
コマンド JMeterの起動
C:\app\jakarta-jmeter-1.9.1\bin>jmeter
テスト計画とは、テストのシナリオのことで、どういうリクエストをどういう順番で、どれくらいのスレッドで行うかなどを定義します。JMeterの「テスト計画」の下にテスト計画を作成していきます。
まず「スレッドグループ」を作成します。テスト計画を右クリック→追加→スレッドグループを選択します。テスト計画にはこのスレッドグループを1
スレッドグループの下に手動で一からテストを作成することも可能ですが、「HTTPプロキシサーバ」を使うと、ブラウザで実行した操作(HTTPリクエスト)をJMeterに取り込むことができるので、簡単にテスト計画が作成できます。
ワークベンチを右クリック→追加→Non-Testエレメント→HTTPプロキシサーバを選択します。「ワークベンチ要素」の下に作成することに注意してください。
ポート番号に任意の番号を入力します(ここでは、18080にしています)。
HTTPプロキシサーバの画面で、「開始」を選択します。これでプロキシサーバが開始します。終了する場合は「停止」を選択します。
ブラウザを起動して、プロキシ設定を行います。例えば、IE6では次のように設定します。「ツール」→「インターネット・オプション」→「接続」タブ→「LANの設定」を選択します。「LANにプロキシ サーバーを使用する」にチェックをし、アドレスに"localhost"、ポートに"18080"(先ほど設定したポート番号)を入力します。
アプリケーションサーバを起動し、ブラウザからアクセス可能な状態にします。またHTTPプロキシサーバが起動していなければ、起動します。ここでは、Tomcatのservlets-examplesを対象にテストを行います。
http://localhost:8080/servlets-examples/にアクセスします。JMeterを見てみると、スレッドグループの下にHTTPリクエストが追加されているのがわかります。ブラウザからのリクエストがテスト計画のHTTPリクエストとしてJMeterに取り込まれています。
以降、テストで行いたいことをブラウザから実行します。ここではSession Exampleを数回実行しました。
「HTTPプロキシサーバ」を停止し、ブラウザのプロキシ設定を元にもどしておきましょう(ワンクリックでプロキシ設定を変えれると便利なんだけどなぁ)。
ブラウザから取り込んだリクエストを編集します。
以下の例は、最初に/sevlet-example/にアクセスし、あとはSessionExmplaesを繰り返し実行しています。
画面 編集したリクエスト
HTTPクッキーマネージャを配置します。追加→設定エレメント→HTTPクッキーマネージャで配置します。単発のリクエストでなく、スレッドごとにセッション情報を維持する場合はこの要素の追加が必要です。
画面 クッキーマネージャの配置
テスト結果を取得、分析するためにいくつかのリスナーを追加します。ここでは、「グラフ表示」と「統計レポート」を追加しました(追加→リスナーから)。
画面 リスナーの追加
スレッドグループを設定します。スレッドグループ要素を選択し、スレッド数とループ回数を設定します。ここでは、スレッドに10、ループ回数に50を指定しました。なお、ループ回数などはループコントローラなどで設定する方法もあります。
画面 スレッドグループの設定
実際のリクエストに近い状態にするために定数タイマなどを設定してもよいでしょう。
テスト計画の保存は、JMeterのメニューから、ファイル→テスト計画を保存で行えます。保存しておけば、後で読み込むことができます。
テストを実行します。JMeterのメニューから、実行→開始を選択します。
グラフ表示要素を選択すると、結果がグラフで表示されます。このシナリオだと、ほとんど負荷がかからないので、余裕の結果で終わっています。
結果をクリアするには、実行→消去を選択します。
ここではローカルのサーバに対するテストでしたが、リモートのサーバにも同様に行えます。サーバーを簡単に変更できるように、HTTPリクエスト初期設定値(たぶん)を指定しておくと便利でしょう。
簡単なテスト計画の作成方法と実行方法をメモっときました。テスト計画の各要素の意味や詳細設定については、マニュアルを参照してください。
TECHSCORE JMeterの基本
http://www.techscore.com/tech/Java/JMeter/1.html
JMeter翻訳(ver1.8.1) yabuta氏 お勉強副産物
http://cgi0.biwa.ne.jp/~yabuta/study/jmeter/usermanual/index.html
JMeter翻訳(ver1.5) Ja-Jakarta
http://www.jajakarta.org/jmeter/