ひこぽんのーと

覚書と雑記です。

JavaEE 7をやってみよう。 JMeter

JavaEE 7をやってみよう。JAX-RS その2から関連して。

WebAPIなんかを作った時の試験や動作確認をする際、
非常に役立つのがApache JMeter
今後、使うのでインストールしておいた。

下記のサイトからダウンロードし展開するだけでOK。
Apache JMeter - Download Apache JMeter

インストールディレクトリ/binにあるjmeterを実行すれば起動する。

f:id:nagamitsu1976:20150808114443p:plain

マニュアルを読まずに勘で使うには少し難しいが、
WebAPIを呼ぶくらいの簡単な操作方法をメモしておく。

1. テスト計画にスレッドグループを追加する。
コンテキストメニューから「追加」- 「Threads(Users)」- 「スレッドグループ」を選択する。
スレッドプロパティにあるスレッド数、RampUp期間、ループ回数は負荷テストや自動テストでは重要な値なのだが、今は気にしない。ALL 1にしておけば1回だけ実行される。
f:id:nagamitsu1976:20150808114934p:plain
2. スレッドグループにサンプラーを追加する。
コンテキストメニューから「追加」- 「サンプラー」- 「HTTPリクエスト」を選択する。
Webサーバの項目にサーバ名(またはIPアドレス)、 ポート番号を、HTTPリクエストの項目にパスとメソッドを入力する。
パラメータがあれば、Parametersのタブに入力する。
ParametersのタブはHTMLのFormオブジェクトにあたる。
JSONXMLをリクエストパラメータにしている場合は、Body Dataのタブに記載することができる。
f:id:nagamitsu1976:20150808115439p:plain
3. HTTPヘッダ情報を追加する。
「追加」- 「設定エレメント」- 「HTTPヘッダマネージャ」を選択する。
リクエストボディのコンテントタイプを指定したり、認証情報やユーザエージェントが無いと正しく動作しない場合などに利用する。例ではコンテントタイプを追加してみた。
f:id:nagamitsu1976:20150808120323p:plain
4. スレッドグループにリスナーを追加する。
コンテキストメニューから「追加」-「リスナー」-「結果をツリーで表示」を選択。
実行結果を見るためのリスナー。実行結果が逐次、ここに蓄積される。
リスナーにも種類はたくさんあるので気になる人は色々試すと良い。
f:id:nagamitsu1976:20150808120831p:plain
5. テスト計画を保存する。
テスト計画を選択した状態で、ファイルメニューからテスト計画の保存を行う。
6. テスト実行。
ツールバーの開始ボタン(緑色の三角ボタン)を押して、テストを行う。
Sampler ResultのタブにはHTTP通信の結果ログのようなものが表示される。
f:id:nagamitsu1976:20150808121242p:plain

リクエストタブにはHTTPリクエスト、HTTPヘッダマネージャで設定したリクエストパラメータが表示される。
f:id:nagamitsu1976:20150808121246p:plain

応答データにはサーバからの応答データが表示される。
f:id:nagamitsu1976:20150808121251p:plain

と、こんな感じで慣れると割と簡単に使るし、
画面を伴わないWebAPIを試験するには便利。
サーバ側のプログラムでは、
Formパラメータのリクエストデータだけあれば良かったりするので、
リクエストデータを一度作ってしまえば、
繰り返し試験は簡単に行えるのが実に良いです。