初めてのJMeter(Windowsへのインストール、日本語化、試験方法)

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の実行ファイルです。
ダブルクリックして起動します。
JMeterがGUIモードで起動します。

JMeterのGUI日本語化手順

JMeterの言語設定は、メニューの"Options"内にある"Choose Language"にあります。
“Japanese"を選択すると、GUIが日本語表示に切り替わります。
恒久的に日本語表示にしたい場合は、起動ファイル(jmeter.bat)を編集します。

GUI日本語化の手順
“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に変更します。
)

画面の表示デザインを変更する手順

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

画面表示デザイン変更手順
“ルック&フィール(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の試験設定

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

負荷(性能)試験の作成手順

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

Building a Web Test Plan

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

負荷(性能j)試験の作成手順
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とすることが推奨されています。試験時には、負荷状況を確認しながらRamp-Upなどの値を適宜調整します。

Thread Group

リスナーの作成手順

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

Listeners

リスナー(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件のリクエストが実行されており、エラーが発生していないことが確認できます。

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

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

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

—広告—

最後に

JMeterのインストールから負荷(性能)試験を実施するまでの手順を確認しました。
今回は最も基本的な例で動作を確認しましたが、JMeterではログイン処理など、ユーザーの利用に合わせたさまざまな動作を再現することができます。

引き続き、いろいろ試してみたいと思います。

スポンサーリンク