初めてのJMeter(インストールから試験実施まで)

JMeter,Others

JMeterを利用して負荷(性能)試験を行う為の手順纏めです。
Windowsサーバでのセットアップ、HTTPリクエストの負荷(性能)試験の作成から結果確認までの手順を纏めています。

    • インストール(Java,Jmeter)
    • Jmeter設定(GUIデザイン変更、日本語化)
    • Webアクセスの負荷(性能)試験作成
    • 負荷(性能)試験実施
    • 結果確認

※シナリオ作成やCLIでの負荷(性能)試験実施手順については本記事の対象外です。
※HTTPリクエストは一番シンプルな単一のURLへのアクセスとしています。

スポンサーリンク

JMeterインストール

JMeterを開始するまでの手順です。
Windows環境の手順です。

JMeterとは

さまざまなアプリケーションの負荷テストおよび性能の計測が行えるオープンソースのソフトウェアです。
アクセスからログイン処理までのユーザー挙動を再現したWebシナリオ試験も出来ます。

Apache JMeter™

JVM準拠の環境で動作します。
WindowsやLinux環境どちらでも利用出来ます。

Operating Systems

リモートホストを利用して複数台のJMeter端末から同時に負荷を発生させる事も出来ます。
元々はWebアクセスの負荷(性能)試験ツールでしたが、最近は色々拡張されておりメール(SMTP(S)、POP3(S)、IMAP(S))等でも利用可能です。

Let’s start

JMeterを利用開始するまでの流れ

JMeterを実行する為にはJavaをインストールする必要があります。

Requirements

    • 利用開始までの流れ
      • Javaインストール
      • JMeterファイル展開
      • JMeterで試験作成

Javaのインストール

公式サイトからJavaをダウンロードしてWindowsへインストールします。

Java公式サイト

Javaインストール

Javaの公式サイトへアクセスします。

Java公式サイト

Javaのダウンロードを選択します。

ダウンロードページが表示されます。
Download Javaを選択します。
ダウンロードしたJavaのインストールファイルをダブルクリックします。

セットアップ画面が表示されます。
インストールを選択します。

※インストールディレクトリを変更する場合は宛先フォルダを変更するにチェックを入れます。

インストール完了画面が表示されます。

JMeterインストール

公式サイトからJMeterのファイルをダウンロード、解凍します。

Apache JMeter™

JMeterインストール

Apache JMeterの公式へアクセスします。

Apache JMeter™

Download Releasesのリンクをクリックします。

ダウロードページが表示されます。
Binariesのファイルをダウンロードします。

※Windows OSなので.zipのファイルをダウンロードしています。
※記事記載時点の最新版(5.6.2)を利用しています。

ダウンロードしたファイルを任意のディレクトリに解凍します。

JMeter Plugins Managerをダウンロード

Jmeterにはプラグインが用意されています。

jmeter-plugins.org

今回はプラグインを利用しませんが、JMeter Plugins Managerだけインストールします。

JMeter Plugins Managerインストール

jmeter-plugins.orgへアクセスします。

jmeter-plugins.org

ファイルをダウンロードします。

Jmeterを配置したディレクトリのlib/ext配下にダウンロードしたファイルを置きます。

JMeterを実行

JMeterを実行します。
GUIやCLIやなど様々な実行方法があります。

Running JMeter

JMeter実行
binは以下にjmeter.batというバッチファイルがあります。
これが実行ファイルになります。
クリックします。
JMeterがGUIモードで起動します。

JMeterの日本語化

JMeterの言語設定はOptionsのChoose Languageにあります。
Japaneseを選択するとGUIが日本語表示に変わります。
恒久的に変更する場合は起動ファイル(jmeter.bat)を編集します。

日本語化
OptionsのメニューでChoose Languageを選択します。
Japaneseを選択します。
GUIが日本語に変わります。
恒久的に変更する場合は起動ファイル(jmeter.bat)を編集します。

71行目前後にある言語設定を編集します。

変更前:set JMETER_LANGUAGE=-Duser.language="en" -Duser.region="EN"
変更後:set JMETER_LANGUAGE=-Duser.language="ja" -Duser.region="JA"

rem Get standard environment variables

if exist “%JMETER_HOME%\bin\setenv.bat" call “%JMETER_HOME%\bin\setenv.bat"

 if not defined JMETER_LANGUAGE (
 rem Set language
 rem Default to en_EN
 set JMETER_LANGUAGE=-Duser.language="ja" -Duser.region="JA" #enとENからjaとJAに変更します。
)

GUI変更

画面の表示デザインを変更する事が出来ます。
ルック&フィール(Look and Feel)の項目で設定します。

GUIデザイン変更
ルック&フィール(Look and Feel)でデザインを選択します。

GUIの表示デザインが変わりました。

※Metalを指定した場合です。

JMeterで負荷(性能)試験作成

単一のURLへの負荷(性能)試験を作成します。
今回はテスト計画(Test Plan)、スレッド グループ(Thread Group)、サンプラー(Samplers)、リスナー(Listeners)を作成しています。

最低限必要な設定と概要

最低限必要な設定はテスト計画(Test Plan)、スレッド グループ(Thread Group)、サンプラー(Samplers)になります。
結果を記録する場合にはリスナー(Listeners)を作成します。

Elements of a Test Plan

テスト計画(Test Plan)にはJMeterの負荷(性能)テストの構成(実行する一連のステップ)が含まれ最上位に位置します。
テスト計画(Test Plan)の配下にスレッドグループやサンプラーなど要素(elements)を定義します。

Building a Test Plan

スレッド グループ(Thread Group)は試験時の負荷を定義する要素(elements)です。
同時に実行するユーザー数(スレッド数)やループ数などを定義します。

Thread Group

サンプラー(Samplers)はテスト対象を定義する要素(elements)です。
HTTPリクエストの場合は対象のURLなどを定義します。

Samplers

リスナー(Listeners)はテスト結果の記録を定義する要素(elements)です。
負荷(性能)試験実施時の応答速度やレスポンスを記録、表示します。

Listeners

設定値

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)
結果をツリーで表示
統計レポート

負荷(性能)試験作成

負荷(性能)試験を作成します。

Building a Web Test Plan

※今回はHTTP リクエスト初期値設定(Default HTTP Request Properties)やHTTPクッキーマネジャー(HTTP Cookie Manager)は未設定で進めています。

試験計画作成
JMeterを開始するとテスト計画が表示されています。
テスト計画(Test Plan)の名前を設定します。

スレッドグループ(Thread Group)を作成します。

Adding Users

テスト計画(Test Plan)を右クリックします。
追加(Add)のThreads(Users)にあるスレッドグループ(Thread Group)を選択します。

スレッド名、スレッドプロパティを設定します。
スレッドプロパティはスレッド数を10、Ramp-Up期間(秒)を1、ループ回数を5としています。

サンプラー(HTTPリクエスト)を作成します。

Adding HTTP Requests

スレッドグループ(Thread Group)を右クリックします。
追加(Add)のサンプラー(Samplers)にあるHTTPリクエスト(HTTP Request)を選択します。

HTTPリクエスト(HTTP Request)を設定します。

HTTP Request

Webサーバにプロトコル、サーバ名を設定します。
HTTPリクエストにアクセスのパスやメソッドを設定します。

※Ramp-Up(秒数)は最大スレッド数(今回の場合は10)に上げるまでの秒数になります。今回は1秒にしてますがスレッド数=Ramp-Upとし負荷状況を見ながら上下させる事が推奨されています。

Thread Group

リスナーを作成

試験結果を記録、表示する為のリスナー(Listeners)を設定します。

Thread Group

リスナー(Listeners)にはいくつかの種類があります。
今回は結果をツリーで表示(View Results Tree)と統計レポート(Aggregate Report)を設定します。

結果をツリーで表示(View Results Tree)を利用するとリクエスト単位でレスポンス詳細を確認出来ます。
レスポンスコードや応答データ(Response Body等)をリクエスト単位で確認出来ます。

View Results Tree

統計レポート(Aggregate Report)を利用するとリクエストごとの結果をテーブル表示で確認出来ます。
リクエストごとの、リクエスト数、エラー率、スループットを確認出来ます。

Aggregate Report

※公式サイトの記述にもありますが、結果をツリーで表示(View Results Tree)は大量にリソースを使用するため負荷(性能)試験時の利用は推奨されていません。試験作成時の動作確認の為に利用されます。

リスナー作成

リスナー(Listeners)を作成します。
スレッドグループ(Thread Group)を右クリックします。
追加(Add)のリスナー(Listeners)にある結果をツリーで表示(View Results Tree)を選択します。

追加(Add)のリスナー(Listeners)にある統計レポート(Aggregate Report)を選択します。

テスト計画(Test Plan)にリスナー(Listeners)が追加されている事が確認出来ます。

テスト計画を保存

設定が終わったらテスト計画を保存します。
XML形式で保存する事が出来ます。

テスト計画を保存
ファイルのテスト計画に名前をつけて保存を選択します。
任意の名前を付けて保存します。

JMeterで負荷(性能)試験を実行

負荷(性能)試験を実行

負荷(性能)試験を実行します。

※公式サイトの記述にもありますがCLIモードでの実行が推奨されています。今回は動作確認の為GUIモードで実行しています。

試験実行
実行(Start)ボタンをクリックすると試験が開始します。
停止(Stop)ボタンを押すと途中で試験を停止出来ます。

リスナー(Listeners)で設定したレポートを確認します。
結果をツリーで表示(View Results Tree)を利用するとリクエスト単位に応答を表示できます。
試験が動作しているか、応答データが期待通りか等を確認出来ます。

統計レポート(Aggregate Report)を表示します。
リクエスト数、エラー率、スループットが確認出来ます。
50リクエスト実行されておりエラーが発生していない事が確認出来ます。

一定時間継続して負荷を発生させる

一定時間継続して負荷をかける事も出来ます。
5分間(300秒)継続して負荷かけるように設定変更します。

継続して実行
無限ループにチェックを入れます。
持続時間(秒)に300を設定します。
試験を実行すると5分間(300秒)継続して負荷を発生させることが出来ます。
App Service のメトリック(Requests)を確認するとアクセスが来ていた事が確認出来ます。

最後に

JMeterの初期設定部分を中心に手順を纏めてみました。
今後も引き続き色々試してみたいと思います。

スポンサーリンク