rwadurian/backend/services/identity-service/scripts
hailin ff65cdf3c1 . 2025-11-24 03:26:09 -08:00
..
README.md . 2025-11-24 03:26:09 -08:00
health-check.sh . 2025-11-24 03:26:09 -08:00
quick-test.sh . 2025-11-24 03:21:24 -08:00
start-all.sh . 2025-11-24 03:26:09 -08:00

README.md

测试和健康检查脚本

使用流程

1 启动 Redis如果未启动

# 启动 Redis
redis-server --daemonize yes

# 或者使用后台启动
redis-server &

2 启动 Identity Service

# 在项目根目录
npm run start:dev

3 运行健康检查

# 进入 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 运行快速功能测试

./quick-test.sh

这个脚本会自动测试所有核心功能:

  • 账户创建
  • 个人资料管理
  • 设备管理
  • Token 刷新
  • 助记词恢复
  • 推荐码查询
  • KYC 提交
  • 错误场景处理

如果健康检查失败

health-check.sh 显示服务异常时,它会给出修复建议:

✗ 存在异常的服务!

修复建议:
  • Redis: redis-server --daemonize yes
  • Identity Service: npm run start:dev

或者运行一键启动脚本:
  ./scripts/start-all.sh

手动修复步骤

Redis 未启动

redis-server --daemonize yes

Identity Service 未启动

# 在项目根目录
npm run start:dev

PostgreSQL 未启动

# Ubuntu/Debian
sudo systemctl start postgresql

# macOS
brew services start postgresql

# Windows
# 使用 PostgreSQL 服务管理器

一键启动(推荐)

如果想一次性启动所有服务:

./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

# Ubuntu/Debian
sudo apt-get install curl

# macOS (通常已安装)
brew install curl

Q: 为什么 jq: command not found?

A: quick-test.sh 需要 jq 来解析 JSON

# Ubuntu/Debian
sudo apt-get install jq

# macOS
brew install jq

Q: Redis 启动失败?

A: 检查是否已经在运行

# 查看 Redis 进程
ps aux | grep redis

# 如果已运行,先停止
redis-cli shutdown

# 然后重新启动
redis-server --daemonize yes

Q: Identity Service 启动失败?

A: 检查日志

# 查看启动日志
npm run start:dev

# 常见问题:
# 1. 端口 3000 已被占用 → 修改 PORT 环境变量
# 2. 数据库连接失败 → 检查 .env 配置
# 3. Redis 连接失败 → 确保 Redis 已启动

完整测试流程

# 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

下一步

所有脚本通过后,可以进行: