236 lines
4.1 KiB
Markdown
236 lines
4.1 KiB
Markdown
# 测试和健康检查脚本
|
||
|
||
## 使用流程
|
||
|
||
### 1️⃣ 启动 Redis(如果未启动)
|
||
|
||
```bash
|
||
# 启动 Redis
|
||
redis-server --daemonize yes
|
||
|
||
# 或者使用后台启动
|
||
redis-server &
|
||
```
|
||
|
||
### 2️⃣ 启动 Identity Service
|
||
|
||
```bash
|
||
# 在项目根目录
|
||
npm run start:dev
|
||
```
|
||
|
||
### 3️⃣ 运行健康检查
|
||
|
||
```bash
|
||
# 进入 scripts 目录
|
||
cd scripts
|
||
|
||
# 运行健康检查
|
||
./health-check.sh
|
||
```
|
||
|
||
**期望输出:**
|
||
```
|
||
🏥 开始健康检查...
|
||
|
||
=== 数据库服务 ===
|
||
Checking PostgreSQL ... ✓ OK
|
||
=== 缓存服务 ===
|
||
Checking Redis ... ✓ OK
|
||
=== 消息队列服务 ===
|
||
Checking Kafka ... ✓ OK
|
||
=== 应用服务 ===
|
||
Checking Identity Service ... ✓ OK
|
||
=== API 文档 ===
|
||
Checking Swagger UI ... ✓ OK
|
||
|
||
======================================
|
||
健康检查完成!
|
||
正常: 5
|
||
异常: 0
|
||
======================================
|
||
✓ 所有服务正常!
|
||
|
||
现在可以运行测试:
|
||
./scripts/quick-test.sh
|
||
```
|
||
|
||
### 4️⃣ 运行快速功能测试
|
||
|
||
```bash
|
||
./quick-test.sh
|
||
```
|
||
|
||
这个脚本会自动测试所有核心功能:
|
||
- ✅ 账户创建
|
||
- ✅ 个人资料管理
|
||
- ✅ 设备管理
|
||
- ✅ Token 刷新
|
||
- ✅ 助记词恢复
|
||
- ✅ 推荐码查询
|
||
- ✅ KYC 提交
|
||
- ✅ 错误场景处理
|
||
|
||
---
|
||
|
||
## 如果健康检查失败
|
||
|
||
当 `health-check.sh` 显示服务异常时,它会给出修复建议:
|
||
|
||
```bash
|
||
✗ 存在异常的服务!
|
||
|
||
修复建议:
|
||
• Redis: redis-server --daemonize yes
|
||
• Identity Service: npm run start:dev
|
||
|
||
或者运行一键启动脚本:
|
||
./scripts/start-all.sh
|
||
```
|
||
|
||
### 手动修复步骤
|
||
|
||
#### Redis 未启动
|
||
```bash
|
||
redis-server --daemonize yes
|
||
```
|
||
|
||
#### Identity Service 未启动
|
||
```bash
|
||
# 在项目根目录
|
||
npm run start:dev
|
||
```
|
||
|
||
#### PostgreSQL 未启动
|
||
```bash
|
||
# Ubuntu/Debian
|
||
sudo systemctl start postgresql
|
||
|
||
# macOS
|
||
brew services start postgresql
|
||
|
||
# Windows
|
||
# 使用 PostgreSQL 服务管理器
|
||
```
|
||
|
||
---
|
||
|
||
## 一键启动(推荐)
|
||
|
||
如果想一次性启动所有服务:
|
||
|
||
```bash
|
||
./scripts/start-all.sh
|
||
```
|
||
|
||
这个脚本会:
|
||
1. ✅ 启动 Redis(如果未运行)
|
||
2. ✅ 检查 PostgreSQL 状态
|
||
3. ✅ 检查 Kafka 状态
|
||
4. ✅ 启动 Identity Service
|
||
5. ✅ 等待服务就绪
|
||
6. ✅ 自动运行健康检查
|
||
|
||
---
|
||
|
||
## 脚本说明
|
||
|
||
### `health-check.sh`
|
||
- **作用**: 检查所有依赖服务是否正常运行
|
||
- **使用场景**: 部署前、调试时
|
||
- **前置条件**: 所有服务需要已启动
|
||
|
||
### `quick-test.sh`
|
||
- **作用**: 快速测试所有核心 API 功能
|
||
- **使用场景**: 验证功能完整性、回归测试
|
||
- **前置条件**: `health-check.sh` 通过
|
||
|
||
### `start-all.sh`
|
||
- **作用**: 一键启动所有服务
|
||
- **使用场景**: 初次启动、快速启动环境
|
||
- **前置条件**: 依赖已安装(PostgreSQL、Redis、Kafka)
|
||
|
||
---
|
||
|
||
## 常见问题
|
||
|
||
### Q: 为什么 `curl: command not found`?
|
||
**A:** 安装 curl
|
||
```bash
|
||
# Ubuntu/Debian
|
||
sudo apt-get install curl
|
||
|
||
# macOS (通常已安装)
|
||
brew install curl
|
||
```
|
||
|
||
### Q: 为什么 `jq: command not found`?
|
||
**A:** `quick-test.sh` 需要 jq 来解析 JSON
|
||
```bash
|
||
# Ubuntu/Debian
|
||
sudo apt-get install jq
|
||
|
||
# macOS
|
||
brew install jq
|
||
```
|
||
|
||
### Q: Redis 启动失败?
|
||
**A:** 检查是否已经在运行
|
||
```bash
|
||
# 查看 Redis 进程
|
||
ps aux | grep redis
|
||
|
||
# 如果已运行,先停止
|
||
redis-cli shutdown
|
||
|
||
# 然后重新启动
|
||
redis-server --daemonize yes
|
||
```
|
||
|
||
### Q: Identity Service 启动失败?
|
||
**A:** 检查日志
|
||
```bash
|
||
# 查看启动日志
|
||
npm run start:dev
|
||
|
||
# 常见问题:
|
||
# 1. 端口 3000 已被占用 → 修改 PORT 环境变量
|
||
# 2. 数据库连接失败 → 检查 .env 配置
|
||
# 3. Redis 连接失败 → 确保 Redis 已启动
|
||
```
|
||
|
||
---
|
||
|
||
## 完整测试流程
|
||
|
||
```bash
|
||
# 1. 进入项目目录
|
||
cd ~/work/rwadurian/backend/services/identity-service
|
||
|
||
# 2. 安装依赖(首次)
|
||
npm install
|
||
|
||
# 3. 启动所有服务
|
||
./scripts/start-all.sh
|
||
|
||
# 4. 运行健康检查
|
||
./scripts/health-check.sh
|
||
|
||
# 5. 运行快速测试
|
||
./scripts/quick-test.sh
|
||
|
||
# 6. 运行完整测试
|
||
npm test
|
||
npm run test:e2e
|
||
```
|
||
|
||
---
|
||
|
||
## 下一步
|
||
|
||
所有脚本通过后,可以进行:
|
||
- 📊 [集成测试](../test/integration-checklist.md)
|
||
- 🔒 [安全测试](../test/security-test-checklist.md)
|
||
- ⚡ [性能测试](../test/performance-test.md)
|
||
- 📝 [手动测试](../test/manual-test-scenarios.md)
|