見出し画像

【負荷テスト実践編】負荷テストサービス「BlazeMeter」の使い方を解説!

はじめに

こんにちは。SHIFT DAAE(ダーエ)開発グループ所属のNogamiです。

今回は、【負荷テスト入門編】6つの負荷テストツール(サービス)を解説!で、ご紹介させていただいたツールの1つであるBlazeMeterの使い方について画像付きで解説します。

BlazeMeterで利用するJMeterのテストシナリオ作成も含めた解説になります。

JMeterでの準備

それでは、今回BlazeMeterで利用する「JMeter」のテストシナリオを作成していきます。

テストシナリオ内容

下記の要件を満たしたテストシナリオを作成します。

  • 複数リクエスト

  • 複数ユーザー

  • 段階的負荷設定


参考までに、段階的に負荷をかけるためのJMeterプラグインを2つ紹介します。

どちらのプラグインも「BlazeMeter」に対応したものになります。

  • Concurrency Thread Group

同時実行数(Target Concurency)に到達するまでに要する時間(Ramp Up Time)を設定し、ステップ数(Ramp-Up Steps Count)を指定することで、段階的に負荷をかけることができます。

引用:Concurrency ThreadGroup

  • Ultimate Thread Group(★今回利用するプラグイン)

Ultimate Thread Groupでは、「Concurrency Thread Group」よりも細かな設定をすることができます。

時間軸上で細やかに負荷の増減を設定できます。

引用: Ultimate Thread Group

テストシナリオ設定

今回実行するテストシナリオをJMeterの設定に落とし込んでいきます。

1.スレッドグループの設定

「JMeter」のGUIで、テスト計画>追加>Threads>から「Ultimate Thread Group」を追加します。
※事前に「Ultimate Thread Group」プラグインのインストールが必要です。

2.Ultimate Thread Groupで負荷量を設定

「Ultimate Thread Group」で徐々に負荷が増加した後、負荷が減っていくように設定を行います。
値を変えると負荷がリアルタイムでグラフ表示されるので、負荷が想定通りかをすぐに確認することができます。

3.HTTPリクエストを設定

「Ultimate Thread Group」>「追加」>「サンプラー」から「HTTPリクエスト」を追加します。
負荷を掛けたいページを設定してください。

4.テストシナリオを確認

「テスト計画」>「追加」>から「リスナー」を追加。
負荷量とHTTPリクエストの設定ができたら、正常にリクエストが返却されるかをローカル環境で確認します。

下記のリスナーを設定後にテストシナリオを実行し、エラーがなく、正常に処理されていることを確認します。

  • 統計レポート

レスポンスコードや応答データを確認することができます。

  • 結果をツリーで表示

各リクエストの数やエラー率を確認することができます。

5.テストシナリオを保存

エラーがないことを確認できたら、テストシナリオを保存しましょう。

「ファイル」>「テスト計画に名前をつけて保存」でテストシナリオを保存。

※ファイル名に、日本語が含まれると「BlazeMeter」にシナリオをアップロードした際に、エラーになる場合があるので、ご注意ください。

以上で、JMeterでの設定は完了です!

BlazeMeterの利用方法

BlazeMeterの利用開始~利用終了までを解説していきます。

BlazeMeter

プラン契約

BlazeMeterを利用するために、プラン契約を行います。

「BlazeMeter」には、4つのプランが設けられています。

  • Starter(無料)

  • Basic(有料)

  • Pro(有料)

  • Unleashed(有料、BlazeMeterへ要問合せ)

プランによって、「同時実行可能数」や「継続可能時間」などの上限値や利用できる機能などが変わります。

各プランの比較情報は下記で確認できるので、プロジェクトの条件にあったプランをご利用ください。

引用:BlazeMeter:Compare Plans

今回は、複数のサーバーから負荷を掛けられるProプランを使用します。

Proプランでは、6,500VUHが利用可能です。

※1VUH=テスト継続時間 (次の 1 時間に切り上げ) * 最大ユーザー数

■計算例

  • 1.0時間(テスト継続時間)×100人(最大ユーザ数)=100VHU消費

  • 1.0時間(テスト継続時間)×200人(最大ユーザ数)=200VHU消費

  • 0.5時間(テスト継続時間)×100人(最大ユーザ数)=100VHU消費 (※テスト継続時間は1.0時間に切り上げ)

契約期間が「Month-to-Month(月単位)」か「Annual(年単位)」かによっても料金が変わるので、利用する期間に合わせて選択してください。

契約更新タイミングでは、下記2点にご注意ください。

  • 契約期間を終えると、利用できるVHUは0になり、Freeプランに移行されます。

  • 途中でVHUを追加する場合に、繰り越される残VHUは10%が上限です。

参考:BlazeMeter:Purchasing-Additional-Credits

利用方法

プランの契約ができたら、いよいよ「BlazeMeter」での操作を行っていきます。

1.新規プロジェクト作成

「Performance」タブの「Projects」から「Create new project」を選択します。

2.新規テスト作成

「Create New Test」を選択し、テスト種類を選択する画面へ進みます。

3.テスト種類選択

負荷テストを実行するために、「Performance Test」を選択します。

BlazeMeterでの設定を行うための画面が表示されます。

4.テストシナリオのアップロード

設定画面が表示できたら、画像赤枠の箇所に、「JMeter」で作成したテストシナリオ(jmxファイル)をドラッグ&ドロップでアップロードします。

読込みが完了すると画像赤枠部分に、アップロードしたファイル名が表示されます。

また、ファイルのチェックが自動で行われるので、「Validation status」の項目が「Passed」になっていることを確認しましょう。

5.同時接続数/継続時間の設定

「JMeter」で作成したテストシナリオ(jmxファイル)の内容をそのまま利用する場合は、「LOAD CONFIGURATION」がOFFになっていることを確認します。

「LOAD CONFIGURATION」をONにした場合は、「BlazeMeter」上で同時接続数や実行時間を調整することができます。

値の更新に合わせて、画面上のグラフも自動で更新されます。

注意点として、「LOAD CONFIGURATION」をONにするとスレッドグループが、「Concurrency Thread Group」に自動で置き換えられます。

「JMeter」で、「Concurrency Thread Group」以外のスレッドグループを使用している場合は、OFFにするようにしましょう。

※今回のテストシナリオでは、「Ultimate Thread Group」を使用しているので、設定はOFFで進めます。

6.負荷分散設定

「LOAD DISTRIBUTION」では、テストシナリオを実行するサーバーの指定を行います。

実行するサーバは、AWS・Azure・GCPから指定をすることができます。

「BlazeMeter」のPro版では、合計20台のサーバを10リージョンにまで分散して実行することが可能です。

注意点として、消費されるVHUは、サーバ数×「JMeterテストシナリオ」のユーザー数×継続実行時間になるので、サーバー台数を増やす場合は、想定のユーザー数になるように、「JMeterテストシナリオ」を調整してください。

<実行例>

  • 「JMeterテストシナリオ」ユーザー数:100人

  • 「JMeterテストシナリオ」継続実行時間:1.0時間

  • 「BlazeMeterサーバー台数」20台

消費するVHUは、2000VHUになります。

7.デバック実行

BlazeMeter上での設定が完了したら、「BlazeMeter」上で正常に動くか確認をするために、デバック実行を行います。

デバック実行では、実行するサーバが1台でユーザー数も10人絞られますが、VHUの消費なしで、テスト実行をすることができます。

「Start Debug Run」を押下するとテスト準備画面が表示されます。

テストが実行されるとレポートが自動生成されるので、エラーがないことを確認します。

8.テスト実行

デバックまで確認して、エラーが発生していないことも確認できたら、「Run Test」を選択して、本番テスト実行します。

設定したサーバー台数(Engines)が表示されていることを確認して、「Launch Servers」を押下します。

「Ready」が表示されてからしばらく待つか、「Start Test!」を押下することでテスト実行が開始されます。

9.テストレポート確認

テストレポートは、自動で作成されるので、実行後にすぐに結果の把握をすることができます。

また、テスト実行中も画面上で、シナリオの実行状況を確認することができます。

6種類のレポートが自動で生成されます。

  1. Summary

  2. Timeline Report

  3. Request Stats

  4. Engine Health

  5. Errors

  6. Logs

重要なテスト指標をまとめたものやエラーにフォーカスしたものなど、分析を行うために必要な情報が一通り揃うので、レポート作成時間が短縮され、分析に注力できます。

※各レポートで確認できる情報の詳細については、BlazeMeter Reportingで確認することができます。

プラン解約

テストが無事完了したら、プラン解約を忘れずに行いましょう!

解約処理を忘れると自動で契約が更新されてしまうので、ご注意ください。

参考:BlazeMeter:Canceling-a-Subscription

おわりに

最後まで記事を読んでいただきありがとうございます!

今回の記事で「BlazeMeter」を利用するまでの具体的な流れをご理解いただけたかと思います。

実際に「BlazeMeter」を使う際は、改めてご一読いただけると幸いです。

他のツールについても知りたいという方は、【負荷テスト入門編】6つの負荷テストツール(サービス)を解説!の記事もオススメです。


\もっと身近にもっとリアルに!DAAE公式Twitter/


■SHIFTへのお問い合わせはこちら


執筆者プロフィール: Nogami
SIerで数年のキャリアを経て、SHIFT入社。
「売れるサービスづくり」を手掛けるDAAE部に所属。
技術・サービスをキャッチアップして、発信していきたいと思います!

お問合せはお気軽に
https://service.shiftinc.jp/contact/

SHIFTについて(コーポレートサイト)
https://www.shiftinc.jp/

SHIFTのサービスについて(サービスサイト)
https://service.shiftinc.jp/

SHIFTの導入事例
https://service.shiftinc.jp/case/

お役立ち資料はこちら
https://service.shiftinc.jp/resources/

SHIFTの採用情報はこちら
https://recruit.shiftinc.jp/career/