同時予約テスト(二重予約が起きないことの実証)
同じ予約枠に対して、複数のユーザーが「同時に」予約確定ボタンを押した状況を再現します。実際のサーバーとデータベースに向けて、リクエストを同時に送信します。
① テスト対象の枠
② 同時に予約するユーザー数
結果
リクエストの応答ログ(到着順)
仕組み(技術メモ)
- 確定処理は「枠が公開中・未来であるときだけ登録する」条件付きINSERT 1文(原子的)で実行します。
- さらにデータベース側に「同じ枠の確定予約は1件まで」という部分UNIQUEインデックスを設け、アプリの不具合や同時実行があっても二重予約をDB自身が拒否します。
- 先に確定した枠は、ほかの利用者の画面に数秒以内に反映され、予約不可として表示されます(デモは2.5秒間隔の同期。本番はWebSocket/SSEも選択可)。