Skip to content

Commit 575b7bd

Browse files
committed
共通基盤READMEを統合後構成に更新
- ブランチ分離の説明を追加 - 各ブランチの統合後構成を反映 - Artillery: 3ファイル構成(load-test.yml, processor.js, dynamic-config.js) - K6: 4ファイル構成(websocket-load-test.js, unified-load-test.js, デバッグ用×2) - 使用方法とブランチ切り替え手順を明記 - パフォーマンス目標と関連PRリンクを追加
1 parent 640a4df commit 575b7bd

1 file changed

Lines changed: 132 additions & 0 deletions

File tree

loadtest/README.md

Lines changed: 132 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,132 @@
1+
# 🚀 BINGO アプリケーション 負荷試験フレームワーク(共通基盤)
2+
3+
このディレクトリには、BINGOアプリケーション用の負荷試験フレームワークの共通設定と分析ツールが含まれています。
4+
5+
**注意**: 実際の負荷試験ツール(ArtilleryとK6)は、GitHub差分サイズの制限により別ブランチに分離されています。
6+
7+
## 🗂️ ブランチ構成
8+
9+
このプロジェクトは以下の3つのブランチに分離されています:
10+
11+
### 1. `feat/yama/server-testing` (このブランチ)
12+
- **目的**: 共通設定とドキュメント
13+
- **内容**: 環境設定、結果分析ツール、概要ドキュメント
14+
15+
### 2. `feat/yama/artillery-load-testing`
16+
- **目的**: Artillery負荷試験ツール
17+
- **内容**: Artillery統合テスト(3ファイル構成)
18+
- **特徴**: HTTP/WebSocket統合、動的設定生成
19+
20+
### 3. `feat/yama/k6-load-testing`
21+
- **目的**: K6高性能負荷試験ツール
22+
- **内容**: K6統合テスト(4ファイル構成)
23+
- **特徴**: JavaScript実行、WebSocket/HTTP分離テスト
24+
25+
## 📁 共通ファイル構成
26+
27+
```
28+
loadtest/
29+
├── config/ # 共通設定
30+
│ └── environments.js # 環境設定
31+
├── results/ # テスト結果保存
32+
├── analyze-results.sh # 結果分析スクリプト
33+
└── README.md # このファイル
34+
```
35+
36+
## 🚀 使用方法
37+
38+
各負荷試験ツールを使用するには、対応するブランチに切り替えてください:
39+
40+
### Artillery負荷試験
41+
```bash
42+
git checkout feat/yama/artillery-load-testing
43+
cd loadtest
44+
./run-tests.sh artillery
45+
```
46+
47+
### K6負荷試験
48+
```bash
49+
git checkout feat/yama/k6-load-testing
50+
cd loadtest
51+
./run-tests.sh unified # 統合HTTP負荷テスト
52+
./run-tests.sh websocket # WebSocket負荷テスト
53+
```
54+
55+
### 結果分析(全ブランチ共通)
56+
```bash
57+
./analyze-results.sh
58+
```
59+
60+
## 🎯 負荷試験種類の概要
61+
62+
### Artillery統合負荷試験
63+
- HTTP APIとWebSocketの統合テスト
64+
- 動的設定生成(最大ユーザー数に基づく)
65+
- HTMLレポート生成
66+
- 現実的なユーザー行動パターン
67+
68+
### K6統合負荷試験
69+
- **統合HTTP負荷テスト**: ユーザー行動シミュレーション
70+
- **WebSocket負荷テスト**: リアルタイム通信専用
71+
- JavaScript実行エンジン
72+
- JSON結果出力
73+
74+
## ⚙️ 環境設定
75+
76+
### 対応環境
77+
- **local**: localhost:3000, localhost:8080
78+
- **production**: bingo.nutfes.net, bingo-api.nutfes.net
79+
80+
### 設定オプション
81+
```bash
82+
# 環境指定
83+
-e, --environment ENV 実行環境 (local|production)
84+
85+
# 最大ユーザー数指定
86+
-u, --max-users NUM 最大ユーザー数
87+
```
88+
89+
## 📊 パフォーマンス目標
90+
91+
| 指標 | Artillery目標 | K6目標 |
92+
|------|---------------|---------|
93+
| HTTP平均レスポンス時間 | < 500ms | < 300ms |
94+
| HTTP 95%ileレスポンス時間 | < 1000ms | < 800ms |
95+
| WebSocket接続時間 | < 1000ms | < 500ms |
96+
| エラー率 | < 1% | < 0.5% |
97+
98+
## 🔧 結果分析
99+
100+
共通の結果分析ツール:
101+
102+
```bash
103+
./analyze-results.sh # 基本分析
104+
./analyze-results.sh evaluate # パフォーマンス判定
105+
./analyze-results.sh list # 結果ファイル一覧
106+
```
107+
108+
## 📈 メトリクス
109+
110+
### Artillery
111+
- HTTP response time
112+
- WebSocket connection time
113+
- Error rates
114+
- User scenarios
115+
116+
### K6
117+
- HTTP response time
118+
- WebSocket message latency
119+
- Connection errors
120+
- Custom metrics
121+
122+
## 🚧 注意事項
123+
124+
1. **ブランチ分離**: 実際の負荷試験実行には、対応するブランチに切り替えが必要です
125+
2. **依存関係**: 各ブランチで異なる依存関係(Artillery: npm, K6: k6バイナリ)
126+
3. **結果保存**: 結果は各ブランチの`results/`ディレクトリに保存されます
127+
128+
## 🔗 関連PR
129+
130+
- [#338 - 負荷試験フレームワーク(共通基盤)](https://github.com/NUTFes/nutfes-Bingo/pull/338) (このブランチ)
131+
- [#341 - Artillery負荷試験ツール](https://github.com/NUTFes/nutfes-Bingo/pull/341)
132+
- [#342 - K6高性能負荷試験ツール](https://github.com/NUTFes/nutfes-Bingo/pull/342)

0 commit comments

Comments
 (0)