負荷試験の種類【目的別】

WebアプリケーションやAPIで負荷試験を実施するサイトも多いのではないでしょうか。

今回はクラウド環境での負荷試験を前提に負荷試験の種類を目的別に紹介してみます

概要として限界テスト・耐久テスト・性能テスト・ロードテストがあります。

以下でそれぞれについて解説していきます。

かなり大きなシステムの負荷テストを実施した経験のある私が、ためになる情報を配信できればと思っています。

負荷試験を実施する目的

限界テスト (ピークテスト)

このテストの目的はわかりやすいですね!

一般的にシステムがどのレベルのアクセスまで耐えられるかを計測するものです。

システムがラッシュした時に、どこまでサービスを落とすことなく運用することができるかを測るものです。

決してシステムの応答時間を担保するものではないので、その点は考慮する必要があります。

例えば、会員登録で徐々にアクセスする人数を増やしていき何人まで会員登録できるか。
100人→300人→500人→1000人→5000人・・・と増やしていきます。

他にも分間のURLアクセス数を増やしていくやり方 (こちらの方が一般的かもしれません)もあります。

使用する負荷試験ツールにもよりますが、JMeterを使用する場合はRamp-Upの調整でアクセス数を増やして行くことが可能となります。

限界テストを実施することによってシステムの限界値を知ることができるため、どれくらいでシステムがダメになるかを感覚的にも知ることができます

耐久テスト

このテストの目的は限界のアクセス数 (負荷量)を継続させてどのくらい耐えられるかを計測することを目的としています。

基本的には限界テストで知らない間に実施していることが多いですが、観察する視点が異なります。

例えば会員登録の限界値が同時接続数10000人だとすると、それを継続して何分および何時間耐えられるかを計測します。

また、スループット (URL/分)などで計測することもあります。

一般的なシステムテストだとスループットを元にすることが多いかと思います。

このテスト手法も限界テストと同様に、システムの最低動作アクセス量を測るものですので、応答時間や性能を担保するものではありません。

性能テスト

このテストの目的は、ある一定のアクセスを想定した時に応答時間が想定の要件を満たすかを計測することを目的としています。

通常負荷時と高負荷時での応答時間をシステムとして許容できるかを判定するのに適したテストです。

例えば、一括で申し込みする処理が1000件ある場合と10000件ある場合で、それぞれ3秒と1分かかったとします。

前者は許容できるが、後者は許容できないとなった場合、後者に対してシステム的に改善できる箇所があるか、それともUIの工夫でサイトから離脱しないようにすることが可能となります。

目標値となる応答時間については、利用するユーザがストレスを感じないような応答時間にする必要がありますが、定性的で難しいので、一般的に3秒程度が妥当という一般論があります。

ロードテスト

このテストの目的は、通常運用時のスループットでの応答時間や、特に応答時間が長くなってしまうページや処理を特定することを目的としています。

特にラッシュしたり高負荷になったりする想定がないWebサイトは、この方法で応答時間や、スループットの測定を実施することをおすすめします。

思いがけずクエリにlike文が多くてページのレスポンス速度が悪いなど、テストを実施して見なければ顕在化しない問題を解決することができます。

通常運用時と同等または、多めに見積もって1.5倍程度のアクセス量を一定時間かけ続けるのがよいでしょう。

負荷テストの実施を迷う方へ

このように様々なテストがありますが、目的に応じてテスト手法を組み合わせることも有用なテスト手段です。

適切なテストを実施し、改善していくということはシステム整合性を高めるだけでなく、ユーザにとっても価値のあるサービスに直結するものとなるので、めんどくさがらずに実施することをおすすめします!

シェアする