Skip to content

Conversation

@TkymHrt
Copy link
Member

@TkymHrt TkymHrt commented Jul 5, 2025

対応Issue

  • resolve #0

概要

BINGOアプリケーション用の負荷試験フレームワーク(共通基盤)を追加しました。負荷試験の実行環境設定と結果分析ツールを提供します。

注意: 実際の負荷試験ツール(ArtilleryとK6)は、GitHub差分サイズの制限により別ブランチに分離されています。

実装詳細

ブランチ構成

このプロジェクトは、GitHubの差分表示制限を解決するため、以下の3つのブランチに分離されています:

1. feat/yama/server-testing (このブランチ)

2. feat/yama/artillery-load-testing

3. feat/yama/k6-load-testing

追加されたファイル

共通設定ファイル

  • config/environments.js: 環境別設定(local/production)

結果分析ツール

  • analyze-results.sh: 負荷試験結果の分析・可視化ツール

ドキュメント

  • README.md: 負荷試験フレームワークの概要と各ブランチの使用方法

主な機能

環境設定管理

  • ローカル環境(localhost:3000, localhost:8080)
  • 本番環境(bingo.nutfes.net, bingo-api.nutfes.net)
  • 環境別のエンドポイント設定

結果分析・可視化

  • JSON結果ファイルの分析
  • HTMLレポート生成(Artillery用)
  • パフォーマンスメトリクス表示
  • エラー率・レスポンス時間の統計

ブランチナビゲーション

  • 各負荷試験ツールへの切り替え手順
  • 統一されたコマンドラインインターフェース
  • 共通設定の一元管理

使用方法

各負荷試験ツールの使用方法:

# Artillery負荷試験(統合版)
git checkout feat/yama/artillery-load-testing
cd loadtest
./run-tests.sh artillery

# K6負荷試験(統合版)
git checkout feat/yama/k6-load-testing
cd loadtest
./run-tests.sh unified      # 統合HTTP負荷テスト
./run-tests.sh websocket    # WebSocket負荷テスト

# 結果分析(全ブランチ共通)
./analyze-results.sh

画面スクリーンショット等

コマンドライン実行のため、スクリーンショットはありません。

テスト項目

  • 環境設定ファイルが正しく読み込まれる
  • ローカル環境設定(localhost:3000)が正常に動作する
  • 本番環境設定(bingo.nutfes.net)が正常に動作する
  • 結果分析ツールが正常に実行される
  • JSONファイル分析機能が動作する
  • HTMLレポート生成機能が動作する(Artillery用)
  • 各ブランチへの切り替え手順が正しく動作する
  • README.mdの手順に従って各ツールが実行できる
  • 共通設定が各ブランチで適切に使用される

備考

ブランチ分離の理由

  • GitHubの差分表示制限により、1つのPRで全ファイルを表示できませんでした
  • レビュー効率向上のため、ツール別にブランチを分離しました
  • 共通設定は本ブランチに、各ツール固有の実装は専用ブランチに配置しました

ファイル統合・整理の実施

統合・整理により、各ブランチのファイル構成をシンプル化:

  • Artillery: 5ファイル → 3ファイル(冗長ファイル削除・統合)
  • K6: 6ファイル → 4ファイル(不正確・冗長ファイル削除)
  • より分かりやすい命名規則とファイル構成

各ブランチの関連性

  1. このブランチ: 共通設定・ドキュメント・結果分析
  2. Artilleryブランチ: HTTP/WebSocket統合負荷試験
  3. K6ブランチ: 高性能JavaScript負荷試験

注意事項

  • 実際の負荷試験を実行するには、対応するブランチに切り替えてください
  • このブランチのみでは負荷試験ツール(Artillery/K6)は実行できません
  • 結果分析ツールはすべてのブランチで共通して使用できます

パフォーマンス目標(全体)

  • システム全体の安定性確認
  • 大量同時接続への対応確認
  • リアルタイム機能の性能確認
  • 本番環境でのスケーラビリティ検証

関連PR

@TkymHrt TkymHrt requested a review from hikahana July 5, 2025 09:49
- GitHubの差分表示問題を解決するため、負荷試験ツールを分割
- Artillery専用: feat/yama/artillery-load-testing ブランチ
- K6専用: feat/yama/k6-load-testing ブランチ
- 元のブランチには共通ファイル(config/, analyze-results.sh)のみ残す
- READMEにブランチ構成と使用方法を記載
@TkymHrt TkymHrt changed the title 負荷試験用のファイル群を追加 負荷試験フレームワーク(共通基盤)を追加 Jul 21, 2025
- ブランチ分離の説明を追加
- 各ブランチの統合後構成を反映
- Artillery: 3ファイル構成(load-test.yml, processor.js, dynamic-config.js)
- K6: 4ファイル構成(websocket-load-test.js, unified-load-test.js, デバッグ用×2)
- 使用方法とブランチ切り替え手順を明記
- パフォーマンス目標と関連PRリンクを追加
Copy link
Collaborator

@hikahana hikahana left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

これはおそらくよいでしょう

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants