負荷テスト実行時のDelayとは?

負荷テストにおける「Delay」

負荷テスト実行時の「Delay」とは、仮想ユーザーが実行するアクション間、または各仮想ユーザーの開始間に意図的に導入される一時停止や待機時間を指します。Delayは実世界のユーザー行動をより正確にシミュレートし、すべての仮想ユーザーがまったく同じ瞬間にシステムにアクセスすることを防ぐために使用されます。

実世界のシナリオでは、ユーザーは全員同時にアクションを取るわけではありません。コンテンツを読んだり、決定を検討したり、フォームに記入したり、自分のペースでカジュアルにブラウジングしたりするかもしれません。アクション間のこの自然な遅延は、システムへの負荷と結果のパフォーマンスメトリクスに影響を与える可能性があります。負荷テストにDelayを導入することで、テスターは実際のユーザーのより不規則で段階的な行動をエミュレートすることを目指しています。

負荷テストにおけるDelayの種類

負荷テスト中に遭遇または設定する可能性のあるさまざまな種類のDelayがあります:

  • Think Time:仮想ユーザーがアクション間で「待機」する時間で、実際のユーザーがコンテンツを読んだり、オプションを検討したりすることをシミュレートします。例えば、ログイン後、実際のユーザーはリンクやボタンをクリックする前に数秒待つかもしれません。スクリプトに「Think Time」を導入することで、この行動をシミュレートします。

  • ランプアップDelay:負荷テストを開始する際、すべての仮想ユーザーを同時に起動することが常に望ましいわけではありません。ランプアップDelayは、負荷テストがユーザーのサブセットから始まり、目的の負荷に達するまで徐々にアクティブユーザー数を増やすことを意味します。例えば、10分間で1000ユーザーをシミュレートしたい場合、線形のランプアップでは毎分100ユーザーが追加されます。

  • スタートアップDelay:仮想ユーザーがアクションを開始する前の初期Delayです。例えば、10人の仮想ユーザーと5秒のスタートアップDelayがある場合、最初のユーザーはすぐに開始し、2番目のユーザーは5秒後に開始し、3番目は10秒後に開始し、以下同様です。

Delayの重要性

適切なDelayを導入することは、リアルな負荷テストに不可欠です。Delayなしでは、テストはシステムに不自然で集中的な負荷をかけ、誤解を招く結果を生む可能性があります。テスト対象のアプリケーションやシステムの実際のユーザー行動を忠実に模倣するようにDelayを調整することが常に重要です。

多くの負荷テストツールや議論において、「Delay」という用語が単独で使用される場合、特にランプアップDelayを指すことが多いです。これは、テスト中に仮想ユーザーが導入されるペースを決定する特に重要なメトリクスです。

ランプアップDelayは、すべての仮想ユーザーが最初から同時にシステムに負荷をかけないことを保証します。代わりに、徐々に追加され、ユーザーが一度にではなく一定期間にわたってWebサイトやアプリケーションに集まるより現実的なシナリオを反映します。

このランプアップDelayを適切に設定することは、突然の非現実的な負荷スパイクを防ぎ、テスト結果を歪めたりシステムに不当なストレスを与えたりすることを防ぐために重要です。負荷テストのパラメータを微調整する際は、テスト条件の真正性を確保するために、この特定のDelayに特別な注意を払うことが不可欠です。