初めてのJMeter(インストールから試験実施まで)
JMeterを利用して負荷(性能)試験を行う為の手順纏めです。
Windowsサーバでのセットアップ、HTTPリクエストの負荷(性能)試験の作成から結果確認までの手順を纏めています。
-
- インストール(Java,Jmeter)
- Jmeter設定(GUIデザイン変更、日本語化)
- Webアクセスの負荷(性能)試験作成
- 負荷(性能)試験実施
- 結果確認
※シナリオ作成やCLIでの負荷(性能)試験実施手順については本記事の対象外です。
※HTTPリクエストは一番シンプルな単一のURLへのアクセスとしています。
JMeterインストール
JMeterを開始するまでの手順です。
Windows環境の手順です。
JMeterとは
さまざまなアプリケーションの負荷テストおよび性能の計測が行えるオープンソースのソフトウェアです。
アクセスからログイン処理までのユーザー挙動を再現したWebシナリオ試験も出来ます。
JVM準拠の環境で動作します。
WindowsやLinux環境どちらでも利用出来ます。
リモートホストを利用して複数台のJMeter端末から同時に負荷を発生させる事も出来ます。
元々はWebアクセスの負荷(性能)試験ツールでしたが、最近は色々拡張されておりメール(SMTP(S)、POP3(S)、IMAP(S))等でも利用可能です。
JMeterを利用開始するまでの流れ
JMeterを実行する為にはJavaをインストールする必要があります。
-
- 利用開始までの流れ
- Javaインストール
- JMeterファイル展開
- JMeterで試験作成
- 利用開始までの流れ
Javaのインストール
公式サイトからJavaをダウンロードしてWindowsへインストールします。
JMeterインストール
公式サイトからJMeterのファイルをダウンロード、解凍します。
JMeter Plugins Managerをダウンロード
Jmeterにはプラグインが用意されています。
今回はプラグインを利用しませんが、JMeter Plugins Managerだけインストールします。
JMeter Plugins Managerインストール | |
jmeter-plugins.orgへアクセスします。 ファイルをダウンロードします。 |
|
Jmeterを配置したディレクトリのlib/ext配下にダウンロードしたファイルを置きます。 |
JMeterを実行
JMeterを実行します。
GUIやCLIやなど様々な実行方法があります。
JMeter実行 | |
binは以下にjmeter.batというバッチファイルがあります。 これが実行ファイルになります。 クリックします。 |
|
JMeterがGUIモードで起動します。 |
JMeterの日本語化
JMeterの言語設定はOptionsのChoose Languageにあります。
Japaneseを選択するとGUIが日本語表示に変わります。
恒久的に変更する場合は起動ファイル(jmeter.bat)を編集します。
GUI変更
画面の表示デザインを変更する事が出来ます。
ルック&フィール(Look and Feel)の項目で設定します。
GUIデザイン変更 | |
ルック&フィール(Look and Feel)でデザインを選択します。 | |
GUIの表示デザインが変わりました。 ※Metalを指定した場合です。 |
JMeterで負荷(性能)試験作成
単一のURLへの負荷(性能)試験を作成します。
今回はテスト計画(Test Plan)、スレッド グループ(Thread Group)、サンプラー(Samplers)、リスナー(Listeners)を作成しています。
最低限必要な設定と概要
最低限必要な設定はテスト計画(Test Plan)、スレッド グループ(Thread Group)、サンプラー(Samplers)になります。
結果を記録する場合にはリスナー(Listeners)を作成します。
テスト計画(Test Plan)にはJMeterの負荷(性能)テストの構成(実行する一連のステップ)が含まれ最上位に位置します。
テスト計画(Test Plan)の配下にスレッドグループやサンプラーなど要素(elements)を定義します。
スレッド グループ(Thread Group)は試験時の負荷を定義する要素(elements)です。
同時に実行するユーザー数(スレッド数)やループ数などを定義します。
サンプラー(Samplers)はテスト対象を定義する要素(elements)です。
HTTPリクエストの場合は対象のURLなどを定義します。
リスナー(Listeners)はテスト結果の記録を定義する要素(elements)です。
負荷(性能)試験実施時の応答速度やレスポンスを記録、表示します。
設定値
JMeterの設定値です。
10ユーザーが5回アクセス(合計50アクセス)する設定にしています。
※アクセス先のWebサイトにはサンプルのApp Service(https://fd-test-01.azurewebsites.net)を利用しています。
要素 | 項目 | 設定値 |
テスト計画 (Test Plan) |
名前 | sample_test_01 |
スレッドグループ (Thread Group) |
名前 | sample_thread_01 |
スレッド数 | 10 | |
Ramp-Up期間 | 1 | |
ループ回数 | 5 | |
サンプラー (Samplers) |
名前 | sample_http_request_01 |
プロトコル | https | |
サーバ名 | fd-test-01.azurewebsites.net | |
HTTPリクエスト | GET | |
パス | / | |
リスナー (Listeners) |
結果をツリーで表示 統計レポート |
負荷(性能)試験作成
負荷(性能)試験を作成します。
※今回はHTTP リクエスト初期値設定(Default HTTP Request Properties)やHTTPクッキーマネジャー(HTTP Cookie Manager)は未設定で進めています。
試験計画作成 |
JMeterを開始するとテスト計画が表示されています。 テスト計画(Test Plan)の名前を設定します。 |
スレッドグループ(Thread Group)を作成します。 テスト計画(Test Plan)を右クリックします。 |
スレッド名、スレッドプロパティを設定します。 |
サンプラー(HTTPリクエスト)を作成します。 スレッドグループ(Thread Group)を右クリックします。 |
HTTPリクエスト(HTTP Request)を設定します。 Webサーバにプロトコル、サーバ名を設定します。 |
※Ramp-Up(秒数)は最大スレッド数(今回の場合は10)に上げるまでの秒数になります。今回は1秒にしてますがスレッド数=Ramp-Upとし負荷状況を見ながら上下させる事が推奨されています。
リスナーを作成
試験結果を記録、表示する為のリスナー(Listeners)を設定します。
リスナー(Listeners)にはいくつかの種類があります。
今回は結果をツリーで表示(View Results Tree)と統計レポート(Aggregate Report)を設定します。
結果をツリーで表示(View Results Tree)を利用するとリクエスト単位でレスポンス詳細を確認出来ます。
レスポンスコードや応答データ(Response Body等)をリクエスト単位で確認出来ます。
統計レポート(Aggregate Report)を利用するとリクエストごとの結果をテーブル表示で確認出来ます。
リクエストごとの、リクエスト数、エラー率、スループットを確認出来ます。
※公式サイトの記述にもありますが、結果をツリーで表示(View Results Tree)は大量にリソースを使用するため負荷(性能)試験時の利用は推奨されていません。試験作成時の動作確認の為に利用されます。
リスナー作成 |
リスナー(Listeners)を作成します。 |
追加(Add)のリスナー(Listeners)にある統計レポート(Aggregate Report)を選択します。 |
テスト計画(Test Plan)にリスナー(Listeners)が追加されている事が確認出来ます。 |
テスト計画を保存
設定が終わったらテスト計画を保存します。
XML形式で保存する事が出来ます。
テスト計画を保存 | |
ファイルのテスト計画に名前をつけて保存を選択します。 任意の名前を付けて保存します。 |
|
JMeterで負荷(性能)試験を実行
負荷(性能)試験を実行
負荷(性能)試験を実行します。
※公式サイトの記述にもありますがCLIモードでの実行が推奨されています。今回は動作確認の為GUIモードで実行しています。
試験実行 | |
実行(Start)ボタンをクリックすると試験が開始します。 | |
停止(Stop)ボタンを押すと途中で試験を停止出来ます。 | |
リスナー(Listeners)で設定したレポートを確認します。 |
|
統計レポート(Aggregate Report)を表示します。 |
一定時間継続して負荷を発生させる
一定時間継続して負荷をかける事も出来ます。
5分間(300秒)継続して負荷かけるように設定変更します。
継続して実行 | |
無限ループにチェックを入れます。 持続時間(秒)に300を設定します。 |
|
試験を実行すると5分間(300秒)継続して負荷を発生させることが出来ます。 | |
App Service のメトリック(Requests)を確認するとアクセスが来ていた事が確認出来ます。 |
最後に
JMeterの初期設定部分を中心に手順を纏めてみました。
今後も引き続き色々試してみたいと思います。