JMeterとは
JMeterとは、パフォーマンス計測用のJavaアプリケーションです。元々はWebアプリケーションのテストのために作成されたもので、さまざまなWebアプリケーションをテストする機能を持っています。現在では、Webアプリケーション以外のさまざまなものに対してもテストできるように拡張されています。
導入
Apache公式から、Apache JMeter 5.2.1 (Requires Java 8+)のBinariesからapache-jmeter-5.2.1.tgzもしくはapache-jmeter-5.2.1.zipをダウンロードします。(2019/12/31最新)
※Java8が存在する前提で進みます。存在しない場合は、ダウンロードしてからお進みください。
ダウンロードが完了したら、解凍を行い、apache-jmeter-5.2.1フォルダの中のbinフォルダの中のApacheJMeter.jarをダブルクリックして起動します。起動すると以下のような画面が表示されます。
使ってみる
スレッドグループの作成
テストを行う上でスレッドグループというものを作成する必要があります。スレッドグループでは、HTTPリクエストをどのように、どれぐらいの量、どれぐらいの期間で送信するかを設定できます。
これらを決定するのが、スレッド数、Ramp-Up期間、ループ回数 です。
以下の画像のようにテスト計画を右クリックし、スレッドグループを追加します。
スレッドグループでは大きく分けてスレッド数、Ramp-Up期間(秒)、ループ回数の3つの項目を設定可能です。
例えば、スレッド数100、Ramp-Up期間を100、ループ回数を1とすると、「100のスレッドを100秒かけて処理を行い、スレッド毎に1回だけ実行する」という意味になります。
スレッドを立ち上げる間隔というのは等しく生成されるので、100秒間に1秒に1回のリクエストが投げられるということになります。
HTTPリクエストの作成
スレッド内で実行するテストの作成を行います。
以下の画像のように、スレッドグループを右クリックし、HTTPリクエストを追加します。
HTTPリクエストでは、負荷テストを行うURLやプロトコル、ポート番号、メソッドなどを任意で選択することができます。
今回は?????????.com
にGETリクエストを送信するという内容のものを指定する。(悪意を持って第3者のWEBサーバに負荷をかけることは罪に問われる可能性がある。)
リスナーの作成
負荷テストを行なった結果を確認するためにリスナーをスレッドグループに追加します。
以下の画像のように、スレッドグループを右クリックし、結果を表で表示
を追加します。
負荷テスト実行
実行ボタンを押します。
結果を表で表示をみると、以下のように実行結果をみることができます。
最後に
今回は、とりあえず負荷テストを行うための最小限の機能だけを、JMeterで紹介しました。
JMeterには表以外にも、グラフで負荷を表示させたりといった様々な結果の見方があります。
是非、お試しください。
次回は、AWS EC2やS3にデプロイされているのに対して負荷試験を行なった中で得られた知見などを紹介していきたいと思います。