こんにちは。 キャスレーコンサルティング・TS(テクニカルサービス)部の木吉です。

1.はじめに

Webアプリケーションを作成した際に、「簡単な性能を知りたい」という場合があると思います。
そんなときに役に立つツールとして、JMeterを紹介します。

JMeterは、Apache財団によって開発されている、
オープンソースソフトウェアの負荷生成ツールで、 クライアントにJava実行環境さえあれば、導入できます。

2.環境構築

Java実行環境のインストールについては、割愛しますが、
JMeterのバージョンによっては、古いバージョンのJDKの場合、実行できないこともあります。
特に問題がなければ、JDK・JMeterともに最新のものを利用することを、おすすめします。

JMeterは、モジュールをApacheのサイトよりダウンロードして、解凍します。

https://jmeter.apache.org/download_jmeter.cgi

「Binaries」から、ダウンロードできます。

◯使用環境
– OS : Mac High Sierra
– Java : 1.8.0_60
– JMeter : apache-jmeter-4.0

3.シナリオ作成

まずは、JMeterのGUI画面を起動します。 起動するには、
解凍したモジュールのbinフォルダ内にある、起動スクリプトを実行します。
(Windowsの場合: jmeter.bat, Macの場合: jmeter.sh)

JMeterでは、負荷生成のためにシナリオを作成して、実行します。
地道に一つずつ、リクエストを作成していく方法もありますが、
JMeterには画面操作によって、シナリオを自動生成してくれる機能がありますので、今回はこちらを利用します。

以下の手順で、シナリオの作成を行います。

1. スレッドグループ作成
2. プロキシサーバ、記録コントローラ追加
3. リスナーの追加
4. プロキシ設定
5. 画面操作

手順3.の「リスナーの追加」で、集計結果を見ることができます。
手順5.終了後に、自動的にシナリオが作成されています。

以下のように、画面操作していきます。

– 「テスト計画」右クリック→「追加」→「Threads(Users)」→「スレッドグループ」
– 「スレッドグループ」右クリック→「追加」→「ロジックコントローラ」→「記憶コントローラ」
– 「テスト計画」右クリック→「追加」→「リスナー」→「統計レポート」
– 「テスト計画」右クリック→「追加」→「Non-Test エレメント」→「Httpプロキシサーバ 」

上記を実行すると、以下のようになっています。
image001 次に、プロキシサーバの設定をします。 メニューから「HTTPプロキシサーバ」を選び、以下のように設定します。
– 対象となるコントローラ:「記録コントローラ」
image002
ブラウザから、ネットワーク設定を変更します。
プロキシとして、さきほど作成したHTTPプロキシサーバを、使うことにします。
ここでは、localhost:8888を設定します。

Macでは、以下のように設定しました。

image003
これで、シナリオ作成の準備は完了です。
メニューから、HTTPプロキシサーバを選択し、開始ボタンをクリックします。
警告が表示されますが、ここではOKを選びます。
image004
ブラウザを開いて対象画面操作を行い、その後HTTPプロキシサーバを停止します。

JMeterのGUI画面を確認すると、以下のように操作ブラウザ操作が記録されています。

image005
今回は、サンプルのため1画面1リクエストのみですが、画面遷移の結果を記録することも可能です。

4.実行・結果集計

最後に、シナリオを実行し、結果を見ていきます。
ここでは、簡単に統計レポートの見方も、紹介します。
シナリオを実行するには、画面上部の開始ボタンを、クリックします。
今回は、初期設定から変更していないので、1スレッド1ループ実行された後、終了します。
では、結果を見るために、統計レポートを開きましょう。
image006
ここで注目するのは、「Average」「Throughput」です。
「Average」は、平均どれくらいの時間で、応答が帰ってきているか(ミリ秒)、
「Throughput」は、単位時間あたり、どれくらいの件数のリクエストを処理したかを、表しています。
これらが性能要件を満たしているかどうかが、性能面での指標になります。

5.おわりに

いかがでしたでしょうか。
簡単な紹介でしたが、JMeterを導入すると手軽に性能測定ができました。
実際の利用環境では、複雑なシナリオや性能限界テスト・ロングランテストなどの
実運用に即したテストが、行われることが多いと思います。

また、本稿では割愛しましたが、JMeter起動時に以下の警告が、表示されます。
より正確な結果を得るため、業務利用する際はGUIモードからではなく、コマンドラインからの実行とすべきでしょう。

image007

作成したアプリケーションが運用に耐えうるかどうか、データで示すことができるので、とても便利です。
利用できる環境では、ぜひ使ってみてはどうでしょうか。
最後まで読んでいただき、ありがとうございました。