JMeterを使用して、Webサイトの負荷テストを行います。最近では、常時SSL化対応のサイトが多くなってきたため、本稿ではHTTPSでサイトアクセスを行い、Webサイトの負荷テストを行います。
記事の目次
使用した環境
- Ubuntu 18.04.03 LTS Desktop
- JMeter 5.1.1
JMeterのインストール
JMeterをダウンロードし、JMeterをインストールします。
JMeterのダウンロード
JMeterのホームページより、JMeterをダウンロードします。以下のアーカイブページからは、過去のバージョンを含めて最新のバージョンをダウンロードすることができます。
本稿では、執筆時最新の5.1.1をダウンロードします。
JMeterのインストール前提のソフトウェア
JMeter 5.1.1は、Java 8以降が必要になります。Java 8がインストールされていない場合は、Java 8のインストールを行います。Ubuntu 18.04では、Java 8以降がデフォルトでインストールされているためJavaインストールは必要ありません。
JMeterのインストール
JMeterのインストールは、Javaのモジュールなので単純に展開して配置します。以下は、Ubuntuの例です。
$ cd /opt $ sudo tar -xzvf ~/Downloads/apache-jmeter-5.1.1.tgz
JMeterの起動
起動用のスクリプトを実行して、JMeterのGUI画面が起動することを確認します。
$ /opt/apache-jmeter-5.1.1/bin/jmeter
フルパスを指定しないで、jmeterコマンドのみで起動できるようにシンボリックリンクを作成します。
$ sudo ln -s /opt/apache-jmeter-5.1.1/bin/jmeter /usr/local/bin/jmeter
以降は、コマンドラインでjmeterと打つだけで起動できます。
テスト計画の作成
動作確認として単ページのレスポンスを計測するテスト計画を作成して、負荷テストを実施します。
テスト計画(Test Plan)の作成
「File」→「New」メニューを選択して「Test Plan」を作成します。ここでは、テスト計画名を入力します。
・Name:(例)Test Plan
スレッドグループの(Thread Group)追加
Webサイトに負荷をかけるユーザに当たる「Thread Group」を作成します。作成したテスト計画を右クリックして、「Thread Group」を追加し、スレッドグループ名を入力します。
・Name:(例)Thread Group
・Number of Thread:1
・Loop Count:1
サンプラー(Sampler)の追加
ユーザが送信するHTTPリクエストを送信するサンプラーを追加します。作成した「Thread Group」を右クリックして、「Sampler」の下の、「HTTP Request」を選択し、以下の値を選択あるいは入力します。
・Protocol:https
・Server Name or IP:(例)labict.com
・Port Number:443
・Path:URLのホスト名以下の部分(/など)
リスナー(Listener)の追加
負荷テストの結果を確認するため「Listner」を追加します。作成した「Thread Group」を右クリックして、以下を追加します。
・View Result in Tree
・View Result in Table
・Summary Report
テスト計画の保存
「File」→「Save」メニューを選択して、テスト計画を保存します。
負荷テストのテスト実行
「Start」ボタンを押して、テスト計画を実行します。「View Result in Tree」リスナーで、レスポンスをHTML表示して、正しく実行されたか確認します。レスポンスタイムは、「Summary Report」の「Average」で確認します。「Thread Group」の「Number of Thread」で同時にアクセスして負荷をかけるユーザを指定できます。ユーザごとに負荷をかける回数は、「Loop Count」で指定します。
負荷テストの実行
実際のテストは、コマンドラインで実行します。以下、「~/jmeter/plans/TestPlan.jmx」に保存したテスト計画の実行例で、レポートが「~/jmeter/results/result」ディレクトリにHTMLで作成されます。レポートは存在しないか空のディレクトリを指定する必要があります。
$ jmeter -n -t ~/jmeter/plans/TestPlan.jmx -l ~/jmeter/results/log.jtl -j ~/jmeter/logs/jmeter.log -e -o ~/jmeter/results/result
おわりに
Jmeterをインストールし、HTTPSサイトの単ページの負荷テストを実施てみました。