Files
whale-town-front/docs/03-技术实现/测试指南.md
moyin 1ff677b3b2 docs: 重新组织文档结构,按开发阶段分类
新的目录结构:
  01-项目入门/     # 新人必读,项目基础
  02-开发规范/     # 编码标准和规范
  03-技术实现/     # 具体开发指导
  04-高级开发/     # 进阶开发技巧
  05-部署运维/     # 发布和部署
  06-功能模块/     # 特定功能文档

 新增导航文档:
- docs/README.md - 完整的文档导航和使用指南
- 各目录下的README.md - 分类说明和使用指导

 优化效果:
- 开发者可以按阶段快速定位需要的文档
- 新人有清晰的学习路径
- 不同角色有针对性的文档推荐
- 提供了问题导向的快速查找功能
2025-12-31 18:02:16 +08:00

6.7 KiB
Raw Blame History

API接口测试指南

更新日期: 2025-12-25
适用版本: API v1.1.1


🎯 测试概述

本指南提供了完整的API接口测试方案包括Godot内置测试和独立的Python测试脚本确保在不同环境下都能有效验证API功能。


📋 测试工具对比

测试工具 适用场景 优势 使用难度
Python快速测试 日常检查 快速、简单
Python完整测试 全面验证 覆盖全面、详细
Godot内置测试 引擎环境 真实环境、UI测试
简单连接测试 基础检查 最小依赖

🚀 快速开始

1. Python测试推荐

安装依赖

cd tests/api
pip install -r requirements.txt

运行快速测试

# Windows
run_tests.bat

# Linux/Mac
./run_tests.sh

# 或直接运行
python quick_test.py

2. Godot测试

运行API测试脚本

# 在Godot中运行
var api_test = preload("res://scripts/network/ApiTestScript.gd").new()
add_child(api_test)

运行UI测试

# 打开Godot项目
# 运行 tests/auth/auth_ui_test.tscn 场景

📊 测试类型详解

1. 快速测试 (quick_test.py)

用途: 日常开发中的快速验证
时间: 约30秒
覆盖: 基础API端点

python tests/api/quick_test.py

测试内容:

  • 服务器状态检查
  • 邮箱验证码发送
  • 用户登录/注册
  • 基础错误处理

2. 完整测试 (api_client_test.py)

用途: 发布前的全面验证
时间: 约2-3分钟
覆盖: 所有业务流程

python tests/api/api_client_test.py

测试内容:

  • 🔄 完整的用户注册流程
  • 🔄 邮箱验证流程
  • 🔄 登录流程(密码+验证码)
  • 🔄 密码重置流程
  • 🔄 错误场景测试
  • 🔄 频率限制测试

3. Godot内置测试

用途: 引擎环境下的真实测试
时间: 根据测试场景而定
覆盖: UI交互和网络请求

API测试脚本

# 文件: scripts/network/ApiTestScript.gd
# 功能: 验证NetworkManager和ResponseHandler

UI测试场景

# 文件: tests/auth/auth_ui_test.tscn
# 功能: 测试认证界面的各种响应情况

🔧 测试配置

API服务器配置

# 默认配置
API_BASE_URL = "https://whaletownend.xinghangee.icu"

# 本地开发配置
API_BASE_URL = "http://localhost:3000"

测试数据配置

# 测试用户信息
TEST_EMAIL = "test@example.com"
TEST_USERNAME = "testuser"
TEST_PASSWORD = "password123"

超时配置

DEFAULT_TIMEOUT = 30  # 秒

📈 测试结果解读

成功标志

  • 测试通过 - 功能正常
  • 🧪 测试模式 - 开发环境,验证码在响应中返回
  • 🔑 获取验证码 - 成功获取到测试验证码

警告标志

  • ⚠️ 资源冲突 - 409状态码用户名/邮箱已存在
  • 频率限制 - 429状态码请求过于频繁

错误标志

  • 测试失败 - 功能异常,需要检查
  • 🔌 连接失败 - 网络问题或服务器不可用
  • 📊 状态码异常 - HTTP状态码不符合预期

示例输出解读

🧪 测试: 发送邮箱验证码
📡 POST https://whaletownend.xinghangee.icu/auth/send-email-verification
📦 数据: {"email": "test@example.com"}
📊 状态码: 206
🧪 测试模式响应
🔑 验证码: 123456
✅ 测试通过

解读:

  • 请求成功发送到正确的端点
  • 返回206状态码表示测试模式
  • 成功获取验证码123456
  • 整体测试通过

🐛 故障排除

常见问题及解决方案

1. 连接失败

症状: ❌ 连接失败网络连接异常

解决方案:

# 检查网络连接
ping whaletownend.xinghangee.icu

# 检查服务器状态
curl https://whaletownend.xinghangee.icu

# 检查防火墙设置

2. 频率限制

症状: ⏰ 请求过于频繁429状态码

解决方案:

  • 等待冷却时间通常1分钟
  • 使用不同的测试邮箱
  • 检查API频率限制配置

3. 验证码错误

症状: 验证码错误或已过期

解决方案:

  • 确保使用最新获取的验证码
  • 检查验证码是否在5分钟有效期内
  • 在测试模式下使用响应中返回的验证码

4. 参数验证失败

症状: 400状态码参数验证失败

解决方案:

  • 检查请求参数格式
  • 确认必填字段都已提供
  • 验证邮箱、用户名格式是否正确

5. Python依赖问题

症状: ModuleNotFoundError: No module named 'requests'

解决方案:

# 安装依赖
pip install requests

# 或使用requirements.txt
pip install -r tests/api/requirements.txt

# 检查Python版本
python --version

📝 测试最佳实践

1. 测试前准备

  • 确认API服务器正常运行
  • 检查网络连接稳定
  • 准备测试数据(邮箱、用户名等)

2. 测试执行

  • 按照从简单到复杂的顺序执行测试
  • 记录测试结果和异常情况
  • 对失败的测试进行重试验证

3. 测试后分析

  • 分析测试结果,识别问题模式
  • 更新测试用例覆盖新发现的场景
  • 文档化测试发现的问题和解决方案

4. 持续集成

  • 将测试脚本集成到CI/CD流程
  • 设置自动化测试触发条件
  • 建立测试结果通知机制

🔄 测试流程建议

开发阶段

  1. 快速测试 - 每次代码修改后运行
  2. 功能测试 - 新功能开发完成后运行
  3. 回归测试 - 修复bug后运行

测试阶段

  1. 完整测试 - 每日构建后运行
  2. 压力测试 - 定期运行频率限制测试
  3. 兼容性测试 - 不同环境下运行测试

发布阶段

  1. 预发布测试 - 生产环境部署前运行
  2. 冒烟测试 - 生产环境部署后运行
  3. 监控测试 - 生产环境持续监控

📚 相关文档


🤝 贡献指南

添加新测试

  1. 在对应的测试文件中添加新的测试方法
  2. 遵循现有的测试模式和命名规范
  3. 添加适当的错误处理和结果验证
  4. 更新相关文档

报告问题

  1. 提供详细的错误信息和复现步骤
  2. 包含测试环境信息Python版本、操作系统等
  3. 附上相关的日志和截图

改进建议

  1. 提出测试覆盖的改进建议
  2. 优化测试执行效率的方案
  3. 增强测试结果可读性的想法

测试愉快!🎉