Azure Load Testingを使ってみよう
はじめに
今回は前回紹介したAzure Chaos Studioと同様、Azureのテストツールである「Azure Load Testing」を紹介したいと思います。
このLoad Testing、Azureを扱う案件に色々と携わってきたこともあり、色々と目にすることも多かったので2~3年前ぐらいには存在していたような気もするのですが、改めて調べたところ昨年1月にGAとなったばかりでして比較的新しいサービスとなります(プレビュー期間もあるので2~3年前という記憶は合っているのかもですが)。
Azure Load Testing概要
この「Load Testing」、内容としてはその名の通りLoad Test、つまり負荷テストを行うためのツールとなります。
今回は単純な負荷テストのみの紹介になりますが、既存の Apache JMeter スクリプトをアップロードしたり、Azure DevOpsのCI/CDに組み込んで回帰テストを実行したりと非常に汎用性が高いツールです。
Azure Load Testing準備
では早速負荷テストを行うための準備を進めてみたいと思います。
当然ながら負荷テストの対象となるリソースが必要となりますので、もし無い場合はあらかじめ準備しておきましょう。
今回はWebAppを新規に作成し、それに対して負荷テストを行うようにします。
以下のようにWebAppを作成し、URLを叩いてWebサイトが見れることを確認します。
![](https://assets.st-note.com/img/1708691351850-bwzlhSChHx.png?width=1200)
この時点で前回のChaos Studioと大きく異なる点がありまして、Chaos Studioの場合、その対象となるリソースはAzure内のリソースである必要があったのですが、Load Testingは公開されているエンドポイント・リソースであればAzureサービスに限らず利用できます。
なので今回のようにVMではなくWebAppでもよいですし、AzureではなくAWSでも構いません。
あまりピンと来ていない方はこの後の設定方法を見ていただくとお分かりになるかと思います。
Azure Load Testing作成及びテスト実行
そして次にLoad Testingそのものを作成してみましょう。
Azureポータル上部の検索欄に「Azure Load Testing」と入力し、表示されたそれをクリックします。
![](https://assets.st-note.com/img/1708691371494-It5f1YCjpr.png?width=1200)
すると以下の画面になりますので「Azure Load Testingのリソースの作成」をクリックします。
![](https://assets.st-note.com/img/1708691395295-fq1IsNv3e7.png?width=1200)
するといつものAzureのリソース作成のための画面になりますので、ここで必要事項を入力します。
単純な負荷テストであれば特に入力項目において気を付ける必要は無いと思います。
リソースグループや名前、リージョンを入力し、次に進みます。
![](https://assets.st-note.com/img/1708691407759-gMdEqCYFCJ.png?width=1200)
暗号化の種類の選択になりますが、ここはデフォルトのままでよいです。
![](https://assets.st-note.com/img/1708691437036-OVFQlUwuhU.png?width=1200)
そして「確認および作成」ボタンを押下し、リソースを作成します。
![](https://assets.st-note.com/img/1708691454137-wpwRMmxuqG.png)
デプロイが完了したら、「リソースに移動」ボタンをクリック。
![](https://assets.st-note.com/img/1708691469721-UxKqCvdZbj.png?width=1200)
以下のようにLoad Testingの画面に遷移するので「概要」ー>「作業の開始」ー>「HTTP要求を追加する」、で「作成」ボタンを押下します。
![](https://assets.st-note.com/img/1708691487486-5YGZLTaIeN.png?width=1200)
すると以下のようにテストを作成するための画面が表示されますので、必要事項を入力します。
![](https://assets.st-note.com/img/1708691512676-22DfXSxS60.png?width=1200)
項目を見てもらえればおわかりになると思いますが、「テストURL」にはテスト対象となる、負荷をかけたいWebサイト、サービスのURLを入力します。
つまりURLが分かればよく、AzureでもAWSでも、それ以外のプラットフォームであってもURLが分かればそれに対してテストが行えます。
あとはサイトにアクセスする仮想ユーザーの数やアクセスする期間等、必要な情報を入力します。
必要事項の入力が終わったら「確認および作成」ボタンを押して、上のスクリーンショットで「作成後にテストを実行する」にチェックが付いていれば作成後、以下のように即テストが実行されます。
![](https://assets.st-note.com/img/1708691543639-2X98zfDO31.png?width=1200)
テスト実行後の結果確認
設定した期間でテストが行われ、テスト実行後の結果が以下になります。
まずはクライアント側としてLoad Testingがどういった負荷をかけたのかがわかるようになっています。
![](https://assets.st-note.com/img/1708691594357-DVHXhkODSm.png?width=1200)
画面の真ん中あたりには以下の様にテスト期間等が表示され、
![](https://assets.st-note.com/img/1708691611838-7L53SzIeUW.png?width=1200)
クライアント側のメトリックとして以下のような情報が表示されています。
![](https://assets.st-note.com/img/1708691628857-s4ohtf2kYx.png?width=1200)
ただ、これは「クライアント側」になりますので、気になるサーバー側については対象となるサーバー側のメトリックで確認すると以下のように負荷テストが実行されたことがわかります。
![](https://assets.st-note.com/img/1708691649278-T3EFUworO8.png?width=1200)
ただ、いちいちリソースを切り替えるのは面倒なので、先ほどのLoad Testingの画面の下の部分、以下の文章の「アプリ コンポーネントの構成」をクリックします。
![](https://assets.st-note.com/img/1708691664418-UjpfJQbX0u.png?width=1200)
すると以下の画面になりますので、今回テスト対象としたリソースを選択して、「適用」ボタンを押すと以下のように「サーバー側のメトリック」も表示され、リソースを切り替えることなく、Load Testingの画面だけで確認ができるようになります。
![](https://assets.st-note.com/img/1708691684029-HWFMIxyGHw.png?width=1200)
ただ、サーバー側のメトリックもデフォルトである「Http5xx」「Requests」「HttpResponseTime」以外も見たい場合があると思います。
その場合は以下の「メトリックの構成」をクリックします。
![](https://assets.st-note.com/img/1708691715946-ikNvZuxJwo.png?width=1200)
すると以下にような画面が表示されますのでそこから好きなメトリック、表示させたいメトリックを選択できます。
![](https://assets.st-note.com/img/1708691743724-yhmjaPduVO.png?width=1200)
最後に
駆け足で紹介しましたが、Load Testingによってこのように簡単に負荷テストが実行できます。
単純に負荷テストを実施するということであれば前回紹介したChaos Studioよりも色々な権限設定を行う必要が無い分、Load Testingの方が使いやすいですね。
テスト対象となるリソースについてもAzureに限らずエンドポイントが存在していればよいのでAWS等でも実施できるというのも大きいと思います。
是非皆さんも使ってみてください。
この記事が気に入ったらサポートをしてみませんか?