======================================================================== テスト操作手順 (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. 計測の限界 ・本スクリプトは簡易負荷確認用であり,詳細な計測は専用ツールの利用を推奨する