Azure Load Testing のスケジュール実行機能で設定可能な一番短いスパンでスケジュールされたロードテストを実行してみた

Azure Load Testing のスケジュール実行機能で設定可能な一番短いスパンでスケジュールされたロードテストを実行してみた

Clock Icon2025.03.09

いわさです。

Azure Load Testing は Microsoft Azure のフルマネージドなロードテストサービスです。
先月のアップデートでスケジュール実行がサポートされました。

https://azure.microsoft.com/en-us/updates?id=480458

https://learn.microsoft.com/en-us/azure/load-testing/how-to-schedule-tests

特定の時間のワークロードスパイクをステージング環境で発生させるとか、エンジニアが待機できないが深夜に負荷発生を予約させたいとか、いくつかユースケースが考えられそうです。

私はロードテストリソースの VUH が残っていたので有効活用したいなと考えていました。
そこで今回は Always On を有効化できない App Service に対して定期リクエストを送信する用途で使えないか確認してみることにしました。

スケジュール機能の有効化

スケジュールは Azure Load Testing 一括ではなく、テストごとに設定が可能です。
まず設定済みのテスト詳細にアクセスします。

D939265D-2564-47FC-B733-CD2AF0D4A8EF_1_105_c.jpeg

テスト詳細画面からスケジュールを追加することができます。
複数のスケジュールが設定できそうにも見えるのですが、ひとつのテストに設定できるスケジュールはひとつまでです。

2A84F261-1024-4F95-9A49-DF77CECE03CA.png
スケジュールの追加

テスト内容の構成を踏襲する形となるので、設定できる内容は「いつ定期実行するか」くらいです。
スケジュールにあわせて負荷を動的にしたりとか、そういうのは出来ません。
なので、もし月曜日だけ負荷を高くして、他の曜日はほどほどにしたい。みたいな時は複数のテストを用意してそれぞれでスケジュール設定を行う形となります。

次のように開始日とスケジュールのパターン、いつまでスケジュールを有効化させるかを指定します。
デフォルトは「繰り返さない」で、これはワンショットの負荷テスト実行を予約させる目的で使うことができます。

9C4C1112-431D-48D4-91A0-E5C448E1B1A3.png
定期的なパターンの選択肢

毎週や毎月を選択した場合は曜日を指定した実行が出来ます。

A99C3826-F175-4F45-8CBA-D3F22C384ED1.png
毎週や毎月の場合の曜日選択

毎月の場合であれば日付の指定も可能です。

B386F3F0-A892-4AF1-8FAA-EA6B9EA77B92.png
毎月を選択した場合の日付指定

一番短く設定できそうなのは「毎時間」な感じがしますね。
ここからだと最小で 1 時間間隔でに実行が出来そうです。

8071DD8D-8D9E-43B2-8F7B-3A4166ECD852_4_5005_c.jpeg
毎時間

ただし、Cron 式も使うことが出来て、この場合だと実は分単位での指定も可能だったりします。
今回の私の場合だとこちらが使えそうです。

C8FAE70A-CAFA-43EF-BAEC-0AB0398291F4_4_5005_c.jpeg
Cron

最小1分から指定できる感じなのですかね。公式ドキュメントを見ても記載が見当たらないです。
5 分ごとに実行するように次のように指定してみます。

D7F19BC6-40A5-45C1-9A54-1E184BB943F4_4_5005_c.jpeg
Cronで5分ごと

しかし、設定しようとすると次のようにエラーとなりました。
エラーメッセージから、どうやら最小10分間隔での指定が可能なようです。

786F8568-5B41-4E6A-8F81-9A662457A3D4_4_5005_c.jpeg
5分ごとを設定したときのエラー

スケジュール実行される様子

スケジュールが設定されると次のように設定内容と、次回いつ実行される予定なのかが確認できます。

767EAA9D-2686-4F9F-B325-9A1E50259226.png
スケジュールが設定されている様子。スケジュールをこれ以上追加できない

また、「繰り返さない」以外のスケジュールの場合だとスケジュールを一時停止させることができます。その場合ステータスが Pause となります。

image.png

次はスケジュールからテストが実行された様子です。
トリガーが従来の「手動」ではなく「スケジュール済み」となっていることがわかると思います。

53A9C9BD-CCCE-4037-9D26-9C847EB73484_1_105_c.jpeg
スケジュールトリガーから実行された

今回 10 分ごとに 10 回まで繰り返すようなスケジュールとしました。1 回目開始のまた 10 分後に 2 回目が開始されました。期待どおり動いています。

9A32577F-32DE-4471-B2F8-BE09475E084D.png
10分後に2回目のスケジュール実行が開始された

ちなみに、終了日を過ぎたり反復回数を超えるとスケジュールが削除されます。
今回だと 10 回のスケジュール実行が完了後にスケジュールが削除されていました。

F8C36E92-1CF9-4514-9DB4-E27F014EF0E9.png

さいごに

本日は Azure Load Testing のスケジュール実行機能で設定可能な一番短いスパンでスケジュールされたロードテストを実行してみました。

最小で 10 分間隔から実行が可能でしたが、1 テストあたり設定できるスケジュールは 1 つまでです。
単純なスケジュールであれば問題なさそうですが、複雑なスケジュールシナリオを作りたい場合は複数のテストを組み合わせるのが良さそうです。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.