========================================================================
テスト操作手順 (Test Operation Guide)
========================================================================
1. 概要 (Overview)
------------------------------------------------------------------------
本ドキュメントは,プロジェクト内のテスト関連ファイルの実行方法を整理し,チーム内で共通の運用手順を共有することを目的とする.
1-1. 対象範囲
■ 対象ファイル
・テスト実行用スクリプト: /workspace/test/load-bot.ts
・テスト用依存定義: /workspace/test/package.json
■ 対象外
・アプリ本体のビルドと起動手順
・本番運用の監視設定
2. 前提条件 (Prerequisites)
------------------------------------------------------------------------
2-1. 環境
・Node.js / pnpm が利用可能であること
・インターネット接続が利用可能であること
2-2. 設定値
■ 接続先URL
・既定値: http://localhost:3000
・変更方法: 環境変数(.env.local)またはコマンドライン引数(--dev)で切り替える
- LOAD_TEST_SERVER_URL: 本番接続先URL
- LOAD_TEST_DEV_SERVER_URL: 開発接続先URL
3. 実行手順 (Execution Steps)
------------------------------------------------------------------------
3-1. 初回準備
1. テスト用ディレクトリへ移動
- コマンド: $ cd /workspace/test
2. 依存関係のインストール
- コマンド: $ pnpm install
3-2. 実行
- コマンド: $ pnpm start
- 開発環境に接続する場合: $ pnpm start -- --dev
4. パラメータ一覧 (Parameters)
------------------------------------------------------------------------
4-1. コマンドライン引数
・--dev: 開発環境(DEV_SERVER_URL)に接続する
4-2. 定数 (load-bot.constants.ts)
■ 接続設定
・URL: 本番サーバURL(環境変数 LOAD_TEST_SERVER_URL で上書き可能,既定: http://localhost:3000)
・DEV_URL: 開発サーバURL(環境変数 LOAD_TEST_DEV_SERVER_URL で上書き可能,既定: http://localhost:3000)
・SOCKET_PATH: Socket.IOのパス(shared の NETWORK_CONFIG から取得)
・SOCKET_TRANSPORTS: Socket.IOのトランスポート(["websocket", "polling"])
■ テスト実行設定
・BOTS: 同時接続するBot数(既定: 99)
・DURATION_MS: テスト実行時間 (ms)(既定: Infinity = 無期限)
・JOIN_DELAY_MS: Bot参加の間隔 (ms)(既定: 25)
・START_DELAY_MS: 接続からゲーム開始リクエストまでの遅延 (ms)(既定: 800)
・ROOM_ID: 参加するルームID(既定: "1")
・START_GAME: 1体目のBotがゲーム開始を実行するか (true/false)
■ Bot動作設定
・BOT_CAN_MOVE: ボット移動の有効化 (true/false)
・BOT_CAN_PLACE_BOMB: ボム設置の有効化 (true/false)
・MOVE_TICK_MS: 移動送信間隔 (ms)(shared の GAME_CONFIG から取得)
・BOT_SPEED: 移動速度(shared の GAME_CONFIG から取得)
・BOT_RADIUS: プレイヤー半径(shared の GAME_CONFIG から取得)
・BOMB_COOLDOWN_MS: ボムのクールダウン (ms)(shared の GAME_CONFIG から取得)
・BOMB_FUSE_MS: ボムの爆発までの時間 (ms)(shared の GAME_CONFIG から取得)
・MAX_X: X座標上限(shared の GAME_CONFIG.GRID_COLS)
・MAX_Y: Y座標上限(shared の GAME_CONFIG.GRID_ROWS)
5. 出力と終了 (Output & Termination)
------------------------------------------------------------------------
5-1. 標準出力
・開始時に設定値が出力される
・終了時に簡易統計 (接続数など) が出力される
5-2. 終了方法
・指定時間経過後に自動終了する
・途中終了する場合はプロセスを終了する
6. 注意事項 (Notes)
------------------------------------------------------------------------
6-1. 本番サーバへの負荷
・負荷テストは低負荷から段階的に実施すること
・必要に応じて管理者へ事前連絡を行うこと
6-2. 依存関係
・test配下は独立した依存関係を持つため,別途pnpm installが必要になる
6-3. 計測の限界
・本スクリプトは簡易負荷確認用であり,詳細な計測は専用ツールの利用を推奨する