Azure Load Testing を触ってみた
はじめに
少し前に azure load test が GA されました。azureメインかつ、最近負荷テストを触る機会も多い自分にとっては、かなり喜ばしいニュースです。 気づいた点をメモしていきます。一回触ってみた段階での感想なので正確じゃない箇所もあるかも。
料金
まずは気になる価格を一回調べます
- ロードテストリソース: 10$
- ロードテストを実施する基盤となる azure のリソースの値段。
- 50時間分の仮想ユーザー時間が含まれる
- テスト時間30分×100ユーザーのシナリオ一回分とか
- 仮想ユーザー時間 (VUH) の追加使用量
- 上記の 50時間分の仮想ユーザー時間を使い切るとこっちがかかる
- 0~9950時間: 0.15$
- 9951~時間: 0.075$
細かく計算するなら、料金計算ツールが便利。 得られるメリットも含めて考えると個人的には妥当な金額かなと思います。自前のVMやコンテナ上でロードテストをする場合は、それなりの性能のものが必要になったりするので。。
概要
- おおまかな概要は以下ドキュメントに記載があります
- 一読して気になったところを箇条書きします
- テスト エンジンとしては Apache JMeter を使用している
- クイックテストとJmeterスクリプトを使用するテストの2種類
- テスト結果をダッシュボードにまとめてくれる
- クライアント側のメトリック は、Jmeterによって集計されたもの
- Azure でホストされるサーバー側のアプリケーションのメトリックの管理も可能。
実際に触ってみる
- 今回は実務で使えそうな、Jmeterスクリプトを使用するテストを使ってみます
- こちらのチュートリアルに沿って触っていきます
- 上記チュートリアルにわかりやすくまとまっていて、詰まりそうなところもなかったので気になったところだけメモします
テスト計画
でシナリオをアップロードする読み込み
タブからエンジンインスタンス数を調整するテスト抽出条件
タブからテストが 成功 or 失敗 する条件を定義する応答時間
,1秒当たりの要求数
,要求
,待機時間
,エラー
が条件として指定できる- 現状国外リージョンにしかリソース作成できないので、
応答時間
とかはリージョンによる結果への影響がないか気になる ]
監視タブ
からテスト中などにメトリックを監視したazureリソースの指定ができる- ここで指定すると、テスト中や後で結果を見返すときにダッシュボードまとまってくれるので見やすくなる
よい点
- 負荷基盤のメンテナンスが不要になる
- テストごとのダッシュボードが簡単に作られる
- CI/CID との統合するが簡単にできる(参考)
- 各スプリントの最後に Staging 環境のリリース対象にロードテストするユースケースとか。
- 使いこなせると品質があがりそうですね、やってみたい。
- Jmeter を使っている人なら使用感が同じ。
注意する点
以下のあたりは少し注意が必要かなと感じました。
- Jmeterの知識はある程度必須
- プレビュー段階で、日本リージョンではリソース作成ができない
- 国外からのテストになるのでパフォーマンスの計測結果に影響でないか気になる。特にクライアント側のメトリック。
- jtl のログはダウンロードできるものの、おそらく詳細情報まで含めたログまではとれなさそう
まとめ
マネージドなサービスならではのうまみもあって今後使ってみたいサービスだと感じました。まだプレビュー段階なのでこれからのアップデートにも期待したいと思います。 今回はチュートリアル用のシナリオだったのですが、もう少し複雑なシナリオ等を動かして使用感をみてみたいです。特にファイルをアップロードしたりGroovyでの独自のロジックなんかを含むシナリオのときの結果の出方なんかを見てみたい気持ちがあります。