とは
負荷テストの基本的な考え方と進め方(前編)
負荷テストの基本的な考え方と進め方(後編)
観点
テストの主な目的は,バグを見つけることによって品質を確保すること
種類
種類 | 目的 |
---|---|
パフォーマンステスト、性能テスト | 速度、スケーラビリティ、安定性を決定・検証するための技術的調査 |
負荷テスト、ロードテスト | 実運用での、通常時/ピーク時の負荷に対して耐えうるかの検証 |
ストレステスト | 実運用での想定利用モデル下で、負荷量と負荷サイズの増大させ、過負荷な状態で発生するバグ(同期の問題、競合条件、メモリーリークなど)を検出するため |
キャパシティテスト | パフォーマンス要件を満たしつつ、どの程度のユーザやトランザクションをさばけるか検証するため |
http://somat.hatenablog.com/entry/20080119/1200778168
https://qiita.com/shase428q/items/058e0a482ca618e1655d
性能要件
シナリオを作成するにあたって、性能要件を定める必要があります。
性能要件が定まらないと、計測の際に何の数字を取るべきか曖昧になってしまいます。
サイトの種類によってスピードがどの程度求められるかは変わってくるので、必要以上の値を求める必要がないということですかね。
性能要件とSLOって近いような気がする。
一般的な性能要件
- スループット
- レスポンス・タイム
- トランザクション量
- ピーク時間帯とその集中率
例
・ある時間内にサイトに訪れるユーザーの最大数(例:1時間で1万アクセスを処理できるか)
・最大同時アクセスユーザー数(例:同時に1,000アクセスを処理できるか)
・主要なページの平均応答時間(例:3秒以内にページを表示できるか)
ツール
Gatling
https://medium.com/eureka-engineering/gatring-stress-test-14ac5efdfcbc
https://qiita.com/yasuaki0206/items/c84361faef08d6788fd0
https://dev.classmethod.jp/articles/gatling/
locust
Vegeta