タイムセールやスケジュールされたイベントなど、同時トラフィックの急増にシステムがどのように対応するかをテストする必要がある場合、ランデブーポイントを使用して仮想ユーザーを同期させることができます。リクエストはランデブーポイントで蓄積され、リリース条件が満たされるまで保持された後、保留中のすべてのリクエストが一斉に送信されます。
仕組み
ランデブーポイントに到達した仮想ユーザーは停止して待機します。持続時間またはユーザー数のしきい値といったリリース条件が満たされると、蓄積されたすべてのリクエストが同時にリリースされます。
| 動作 | 説明 |
|---|---|
| 1 回のみのトリガー | ランデブーポイントは、1 回のストレステストにつき 1 度だけトリガーされます。蓄積されたリクエストがリリースされた後、後続の反復は待機せずに通過します |
| リリースレート | 保留中のすべてのリクエストは同時にリリースされますが、下流の API への実際の到着レートは、仮想ユーザーの数と後続の命令に設定された 1 秒あたりの読み取りレコード数 (RPS) に依存します |
前提条件
開始する前に、以下が準備できていることを確認してください。
リリースタイプの選択
ランデブーポイントを追加する前に、どのリリースタイプがテスト目標に適合するかを決定してください。
| リリースタイプ | 最適なケース | 仕組み | 考慮事項 |
|---|---|---|---|
| 時間指定 | 時間ベースのイベント (例:特定の瞬間に開始するタイムセール) | 一定の持続時間リクエストを蓄積し、その後すべてを一度にリリースします | 待機ウィンドウ内に到着したすべてのユーザーが、数に関係なく含まれます |
| ユーザー数別 | 正確な数の同時リクエストを保証します | 指定された数の仮想ユーザーが待機するまでリクエストを蓄積し、その後すべてを一度にリリースします | テストに、しきい値に到達するのに十分な仮想ユーザーがいることを確認してください。そうでない場合、ランデブーポイントはトリガーされません |
ランデブーポイントの追加
PTS コンソールにログインします。[パフォーマンステスト] > [シナリオの作成] に移動し、[PTS] をクリックします。
API を追加し、基本情報を設定します。詳細については、「HTTP API」をご参照ください。
[ビジネスセッション] セクションで、[指示の追加] ドロップダウンリストをクリックし、[ランデブーポイント] を選択します。
[ランデブーポイント] を展開し、[ランデブーポイントタイプ] を以下のいずれかに設定します。
時間指定
ストレステスト開始後、一定の持続時間リクエストを蓄積し、その後すべてを一度にリリースします。
| パラメーター | 説明 |
|---|---|
| ランデブーポイントタイプ | [時間指定] |
| 待機時間 | 秒単位の持続時間。ストレステストの開始からこの時間が経過すると、蓄積されたすべてのリクエストが同時にリリースされます |
例: [待機時間] を 300 に設定します。最初の 300 秒以内にランデブーポイントに到達したすべての仮想ユーザーのリクエストは保持され、300 秒の時点で一斉にリリースされます。
ユーザー数別
特定の数の仮想ユーザーが待機するまでリクエストを蓄積し、その後すべてを一度にリリースします。
| パラメーター | 説明 |
|---|---|
| ランデブーポイントタイプ | [ユーザー数指定] |
| ユーザー数 | ターゲット数。この数の仮想ユーザーがランデブーポイントに蓄積されると、すべてのリクエストが同時にリリースされます |
例: ユーザー数を 50 に設定します。ランデブーポイントは、50 人の仮想ユーザーが待機するまでリクエストを保持し、その後 50 件すべてのリクエストを同時にリリースします。
テスト内の仮想ユーザーの数が指定されたしきい値よりも少ない場合、ランデブーポイントはトリガーされず、蓄積されたリクエストはリリースされません。シナリオ内の仮想ユーザーの総数がしきい値以上であることを確認してください。
よくある質問
ランデブーポイントは複数回トリガーされますか?
いいえ。ランデブーポイントは、1 回のストレステストにつき 1 度だけトリガーされます。最初のリリース後、後続の反復の仮想ユーザーは待機せずにランデブーポイントを通過します。
「ユーザー数指定」のしきい値に到達しなかった場合はどうなりますか?
テストに、しきい値に到達するのに十分な仮想ユーザーがいない場合、ランデブーポイントはトリガーされません。これを避けるために、仮想ユーザーの総数が [ユーザー数] の値以上であることを確認してください。
ランデブーポイントは、すべてのリクエストがサーバーにまったく同時に到着することを保証しますか?
完全には保証しません。保留中のすべてのリクエストはランデブーポイントから同時にリリースされますが、下流の API への実際の到着レートは、仮想ユーザーの数と後続の命令に設定された RPS に依存します。