🤖 MBE Desktop 注册功能自动化测试指南
创建日期: 2026-02-08
测试脚本: scripts\test-registration-simple.ps1
📋 快速开始
1. 启动后端服务
选项 A: 使用 Docker(推荐)
cd d:\Mises
docker-compose up -d
选项 B: 使用 PowerShell 脚本
cd d:\Mises\mbe-desktop
.\scripts\start-backend.ps1
验证后端运行:
Invoke-WebRequest -Uri "http://localhost:8000/api/health" -UseBasicParsing
应该返回: {"status":"healthy","service":"mises-behavior-engine"}
2. 运行自动化测试
cd d:\Mises\mbe-desktop
powershell -ExecutionPolicy Bypass -File scripts\test-registration-simple.ps1
🧪 测试用例说明
✅ 测试 1: 后端健康检查
- 目的: 验证后端服务是否运行
- 预期: 返回
200 OK,状态为healthy
✅ 测试 2: 新用户注册
- 目的: 验证注册功能正常工作
- 检查项:
- ✅ 返回
access_token - ✅ 返回
refresh_token(修复重点) - ✅ 返回
user_id - ✅ 状态码为
200或201
- ✅ 返回
✅ 测试 3: 重复邮箱注册
- 目的: 验证错误处理
- 预期: 返回
400 Bad Request,错误信息包含"邮箱已注册"
✅ 测试 4: 必填字段验证
- 目的: 验证前端和后端验证
- 测试项:
- 缺少邮箱 → 应返回
400或422 - 缺少密码 → 应返回
400或422
- 缺少邮箱 → 应返回
📊 测试结果示例
✅ 成功示例
============================================================
MBE Desktop Registration Test
============================================================
Test 1: Backend Health Check
PASS: Backend is running
Test 2: New User Registration
PASS: Registration successful
User ID: 12345678-1234-1234-1234-123456789abc
Access Token: Present
Refresh Token: Present
Test 3: Duplicate Email Registration
PASS: Duplicate email returns 400
Test 4: Required Fields Validation
PASS: Missing email validation works
PASS: Missing password validation works
============================================================
Test Summary
============================================================
Total: 5
Passed: 5
Failed: 0
Success Rate: 100.0%
All tests passed! Registration fix is working!
❌ 失败示例
Test 2: New User Registration
FAIL: Missing required fields in response
(缺少 refresh_token)
Test Summary
Total: 5
Passed: 3
Failed: 2
Success Rate: 60.0%
Some tests failed. Please check the errors above.
🔍 故障排查
问题 1: 后端服务无法访问
错误信息:
FAIL: Backend not accessible: 无法连接到远程服务器
解决方法:
- 检查后端服务是否运行:
docker ps | Select-String "mbe" - 检查端口是否被占用:
Get-NetTCPConnection | Where-Object {$_.LocalPort -eq 8000} - 查看后端日志:
docker logs mbe-api-dev --tail 50
问题 2: 注册返回 500 错误
可能原因: 数据库表缺少 nickname 列
解决方法:
-- 连接到 PostgreSQL 数据库
ALTER TABLE users ADD COLUMN IF NOT EXISTS nickname TEXT DEFAULT 'user';
问题 3: 测试脚本执行失败
错误: PowerShell 执行策略限制
解决方法:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
或使用:
powershell -ExecutionPolicy Bypass -File scripts\test-registration-simple.ps1
📝 手动测试步骤
如果自动化测试无法运行,可以手动测试:
1. 使用 Postman 或 curl
注册新用户:
$body = @{
email = "test@mbe-dev.com"
password = "Test@123456"
username = "TestUser"
} | ConvertTo-Json
Invoke-RestMethod -Uri "http://localhost:8000/api/v1/users/register" `
-Method Post `
-Body $body `
-ContentType "application/json"
检查响应:
- ✅ 应包含
access_token - ✅ 应包含
refresh_token(修复重点) - ✅ 应包含
user_id
2. 在 MBE Desktop 应用中测试
启动 Desktop 应用:
cd d:\Mises\mbe-desktop npm run dev:electron在 Electron 窗口中:
- 点击"免费注册"
- 填写注册信息
- 点击"创建账号"
- 按
F12打开开发者工具查看 Network 请求
验证:
- ✅ 注册成功后自动跳转到 Dashboard
- ✅ Console 显示 Token 已保存
- ✅ Network 显示
refresh_token在响应中
✅ 测试通过标准
所有以下条件满足时,注册功能修复成功:
- ✅ 新用户可以成功注册
- ✅ 注册响应包含
refresh_token - ✅ 重复邮箱返回正确的错误信息
- ✅ 必填字段验证正常工作
- ✅ 数据库操作成功(无 nickname 列错误)
📞 支持
如果测试失败,请检查:
- 后端服务日志
- 数据库连接状态
- API 响应内容
- 网络连接
相关文档:
docs\TEST_REGISTRATION.md- 详细测试指南docs\FIX_REGISTRATION_ERROR.md- 修复说明docs\TROUBLESHOOTING.md- 故障排查
最后更新: 2026-02-08