【負荷テスト実践編】負荷テストサービス「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)を指定することで、段階的に負荷をかけることができます。
Ultimate Thread Group(★今回利用するプラグイン)
Ultimate Thread Groupでは、「Concurrency 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」には、4つのプランが設けられています。
Starter(無料)
Basic(有料)
Pro(有料)
Unleashed(有料、BlazeMeterへ要問合せ)
プランによって、「同時実行可能数」や「継続可能時間」などの上限値や利用できる機能などが変わります。
各プランの比較情報は下記で確認できるので、プロジェクトの条件にあったプランをご利用ください。
今回は、複数のサーバーから負荷を掛けられる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種類のレポートが自動で生成されます。
Summary
Timeline Report
Request Stats
Engine Health
Errors
Logs
重要なテスト指標をまとめたものやエラーにフォーカスしたものなど、分析を行うために必要な情報が一通り揃うので、レポート作成時間が短縮され、分析に注力できます。
※各レポートで確認できる情報の詳細については、BlazeMeter Reportingで確認することができます。
プラン解約
テストが無事完了したら、プラン解約を忘れずに行いましょう!
解約処理を忘れると自動で契約が更新されてしまうので、ご注意ください。
参考:BlazeMeter:Canceling-a-Subscription
おわりに
最後まで記事を読んでいただきありがとうございます!
今回の記事で「BlazeMeter」を利用するまでの具体的な流れをご理解いただけたかと思います。
実際に「BlazeMeter」を使う際は、改めてご一読いただけると幸いです。
他のツールについても知りたいという方は、【負荷テスト入門編】6つの負荷テストツール(サービス)を解説!の記事もオススメです。
\もっと身近にもっとリアルに!DAAE公式Twitter/
■SHIFTへのお問い合わせはこちら
お問合せはお気軽に
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/