はじめに
Azure Load Testingでテストする場合に、当然負荷を増やす必要が出てきます。そこで、変更が必要になってくるのがEngine instancesです。
テストは以前の利用したものを使います。
-
Azure Load Testingを試してみましたが便利です。 - 技術的な何か。
はじめに Azureではロードテストが行えるツールが公開されています。Azure Load Testingです。プレビューですので今後仕様変更など行われる可能ですがあります。 Jmeterでテストを作
level69.net
ドキュメントは下記を参考にしてください。
-
高スケールのロード テストを構成する - Azure Load Testing | Microsoft Learn
高スケールのロード テストを実行するように Azure Load Testing でテスト エンジン インスタンスを構成する方法について説明します。 エンジン正常性メトリックを監視して、ロード テスト ...
docs.microsoft.com
負荷の計算
負荷の増減はいたって単純です。
テストプランで設定したスレッド数xEngine instances数です。
今回のテストプランのスレッド数を確認します。
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread Group" enabled="true"> <stringProp name="ThreadGroup.on_sample_error">continue</stringProp> <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true"> <boolProp name="LoopController.continue_forever">false</boolProp> <intProp name="LoopController.loops">-1</intProp> </elementProp> <stringProp name="ThreadGroup.num_threads">5</stringProp> <stringProp name="ThreadGroup.ramp_time">10</stringProp> <boolProp name="ThreadGroup.scheduler">true</boolProp> <stringProp name="ThreadGroup.duration">120</stringProp> <stringProp name="ThreadGroup.delay">5</stringProp> <boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp> </ThreadGroup>
スレッド数は5です。これが負荷の基準になります。
スレッド数5 x Engine instances数1だと10スレッドになりますが、メトリックスではVirtual Users(Max)に反映されます。
テスト結果を表示した場合のVirtual users (average)とは異なることに注意が必要です。
スレッド数5 x Engine instances数2の場合はスレッド数10の場合。Virtual Users(Max)が10になります。
Engine instances数が45になっています。
たま、スレッド数は250以下にすることが推奨されています。
まとめ
負荷の変更を行う方法がEngine instancesであることを書きました。インスタンス数を変更するだけで負荷を上げることが出来ることは、Jmeterをサーバーを複数構築していた時に比べれば時間も短縮できます。プラグインの利用は行えないなど、ある程度の制限はありますが単純な負荷試験であればことは足りると思うので簡易なテストのときに利用するとよいと思います。