🐕
パフォーマンステストと負荷テストの違いを理解する
概要
表題のテストの要件を定義する際に、役割が似ており、相互補完の役割を担っています。
しかしその結果、実際に求められているものがどちらなのかを見誤り、
測定方法や結果がズレることがあります。
この記事では各々の定義の差異を明らかにして、
計測したい目的とあったデータを提供できることを目的にします。
1. パフォーマンステスト
システムのスピード、応答時間、安定性、信頼性などを測定するためのテストです。
特定のワークロード条件下 で、システムがどのように機能するかを評価するために行います。
先に定めた条件下で、システムの性能を検査し、ボトルネックになっている部分はどこなのか、
改善点はあるのかを明らかにするために行います。
ワークロード条件下
PM8時台のアクセスユーザー数を想定、など具体的な再現条件を指します。
利用できるテストパターン
2. 負荷テスト
システムが期待されるトラフィックやデータ量を処理できるかを確認するためのテストです。
このテストでは、システムに大量のリクエストやデータを送り込み、
そのパフォーマンスと耐久性を評価することを目的にしています。
負荷テストは一般的に、システムの 「限界」 を見つけ出すために行います。
限界の定義
システムが正常に動作し続けることができる、最大の負荷を指します。
Webサービスであれば、400 or 500代のエラーを出さないで、
何処まで稼働し続けるかも一つの指標になります。
限界の計測値には次のような項目が挙げられます。
代表的な計測値
- 同時ユーザー数:システムが一度に処理できるユーザーの数。
- トランザクション数:システムが一定時間内に処理できるトランザクションの数。
- 応答時間:システムがリクエストに対して応答を返すまでの時間。
利用できるテストパターン
ざっくり比較まとめ
パフォーマンステスト:システムのパフォーマンスを測定する。
負荷テスト:システムの耐久性を評価する。
パフォーマンステスト | 負荷テスト | |
---|---|---|
目的 | システムのスピード、応答時間、安定性、信頼性を測定 | システムが最大負荷を処理できるかを確認 |
評価対象 | 特定のワークロード条件下でのシステムの機能 | システムのパフォーマンスと耐久性 |
主要な利点 | ボトルネックと改善点の特定 | システムの限界(最大負荷)の確認 |
主要な計測値 | スピード、応答時間、安定性、信頼性 | 同時ユーザー数、トランザクション数、応答時間 |
使用される場面 | システムのパフォーマンスの評価と最適化 | システムが大量のトラフィックやデータを処理できるかの確認 |
再現条件の例 | PM8時台のアクセスユーザー数を想定 | システムに大量のリクエストやデータを送り込む |
Discussion