サーバーのちょっとした性能試験をしたいことありますよね!?
GoogleのPageSpeed InsightsWebなどのウェブサービスを使って実施するのもいいですけど、Apache JMeter もなかなか便利。
負荷試験なんかで使用されるツールなんですけど、リクエストの数や時間をコントロールして負荷を高めたり、実行結果の詳細/サマリといったログも収集できます。
もちろん単発のリクエストの測定もOK。
設定値を調整すると長いタイムスパン(数時間~24時間とか)の中で、一定間隔での測定も自動化できるわけです。
サーバー性能なんてものは、時間帯毎のアクセス密度や様々な要因でパフォーマンスが変わるもんだから、より正確に測ろうとすると計測時間を延ばしてやる必要があります。
そんな時にApache JMeterみたいなツールがあると便利ですという話。
本記事では「Apache JMeterのインストール方法」と「Apache JMeterの基本的な使い方」を紹介します。
Apache JMeterのインストール方法
Apache JMeterは下記のダウンロードサイトから取得できます。
※以降の手順ではWindows端末を使用して実施します。
ダウンロード
最新版Binaries「apache-jmeter-5.3.zip」をダウンロードします。
なお、Java8以上が必要要件となっていますので、Javaが入っていない場合は下記リンクなどを参考に別途インストールしてください。
インストール
ダウンロードしたapache-jmeter-5.3.zipを任意のフォルダに展開します。
例)C:\Program Files配下の場合
JMeterの日本語化
日本語化のオプションを有効にするため、「apache-jmeter-5.3\bin」の配下に日本語設定ファイルを作成します。
例) jmeter_ja.bat など※ファイル名は分かればなんでもいいです。
下記のコードを貼り付けて保存します。
@echo off
REM 日本語に設定して JMeter を起動
SET JVM_ARGS="-Duser.language=ja"
jmeter.bat
exit
JMeterの起動
前述の手順で作成した、jmeter_ja.bat をダブルクリックして起動します。
このようなウィンドウが開けば起動完了です。
もし、起動しない場合は
JMeterが起動しない場合、ダウンロードしたファイルが誤っている可能性があります。
「Apache JMeterが起動しない場合」を参照ください。
Apache JMeterの使い方
今回はシンプルにサーバーにGETリクエストを送る手順を紹介していきます。
JMeterを起動すると、左上の一覧に「テスト計画」の項目が表示されているかと思います。「テスト計画」が一つのテストを取りまとめる最上位階層となります。
基本的にはこの項目配下に、複数のリクエスト取りまとめる「スレッド」を追加し、スレッド配下には「リクエスト」がぶら下がる形でリクエストの内容を設定します。
少し構造が分かりにくいかと思いますので、実際に設定して動きを見ると理解が早いかと思います。
初めにテスト計画の配下にスレッドを追加します。
- 「テスト計画」右クリック ⇒ 「追加」 ⇒「Thread(Users)」 ⇒ 「スレッドグループ」
スレッドグループの設定では、この後に追加するリクエストの送信をコントロールします。
単純なリクエスト送信であれば、下記の項目設定でこと足ります。
- スレッド数:リクエストの送信回数
- Ramp-Up 期間:何秒かけて↑のリクエストを送信するか
- ループ回数:リクエスト送信を何回ループするか
画像の例においては、10回リクエストを100秒かけて送信するため、10秒ごとに1リクエストを送信するテストとなります。
仮にループ数を2として場合は、10×2(ループ)=200リクエストを100秒かけて送信します。
注意点
無限ループのチェックONや、大量のスレッド数設定は短時間での大量リクエストとなりサーバーに負荷がかかります。
外部サーバーに向けていると、他者に損害を与える結果を招きかねません。
自己責任の上で十分注意して実施ください。
続けて「HTTPリクエスト」を追加し、リクエストの内容を設定していきます。
- 「スレッドグループ」右クリック⇒「追加」⇒「サンプラー」⇒「HTTPリクエスト」
HTTPリクエストの設定は単純なページ取得などのGETリクエストであれば、プロトコル(httpsまたはhttp)とホスト名のみでOK。
※必要に応じてパラメータを付与したり、ヘッダーの設定を追加することも可能です。
実行結果を確認するためのリスナーを追加します。
- 「スレッドグループ」⇒「追加」⇒「リスナー」⇒「結果を表で表示」
「結果を表で表示」の項目ではリクエストの実行結果やレスポンスタイム等の情報を一覧で見る事ができます。
リスナーでは他にも結果のサマリーや統計を採取できる項目もありますので色々試してみると面白いです。
最後に実行方法。
「スレッドグループ」または「テスト計画」を選択した状態で、実行ボタン(?)をクリックするだけ。
※途中で中断したい場合は隣の「STOP」をクリックしてください。
Apache JMeterが起動しない場合
次の内容をチェックしてください。
- bin フォルダ配下に「ApacheJMeter.jar」は存在しない。
- エラー「Error: Unable to access jarfile ApacheJMeter.jar errorlevel=1」がでている。
いずれかに当てはまる場合は、バイナリ版ではなくソース版のJMeterをダウンロードしている可能性がたかいので、最初の手順にてバイナリ版を再度ダウンロードしなおして試してください。
上記原因でない場合は、Javaのインストールが正しく行えていない可能性がありますので、その方向で調べてみると解決するかもしれません。