Files
vf_react/docs/TEST_GUIDE.md
zdl 09db05c448 docs: 将所有文档迁移到 docs/ 目录
- 移动42个文档文件到 docs/ 目录
  - 更新 .gitignore 允许 docs/ 下的 .md 文件
  - 删除根目录下的重复文档文件

  📁 文档分类:
  - StockDetailPanel 重构文档(3个)
  - PostHog 集成文档(6个)
  - 系统架构和API文档(33个)

  🤖 Generated with [Claude Code](https://claude.com/claude-code)

  Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-30 14:51:22 +08:00

7.4 KiB
Raw Permalink Blame History

崩溃修复测试指南

测试时间2025-10-14 测试范围SignInIllustration.js + SignUpIllustration.js 服务器地址:http://localhost:3000


🎯 测试目标

验证以下修复是否有效:

  • 响应对象崩溃6处
  • 组件卸载后 setState6处
  • 定时器内存泄漏2处

📋 测试清单

关键测试(必做)

1. 网络异常测试 - 验证响应对象修复

登录页面 - 发送验证码

测试步骤:
1. 打开 http://localhost:3000/auth/sign-in
2. 切换到"验证码登录"模式
3. 输入手机号13800138000
4. 打开浏览器开发者工具 (F12) → Network 标签
5. 点击 Offline 模拟断网
6. 点击"发送验证码"按钮

预期结果:
✅ 显示错误提示:"发送验证码失败 - 网络请求失败,请检查网络连接"
✅ 页面不崩溃
✅ 无 JavaScript 错误

修复前:
❌ 页面白屏崩溃
❌ Console 报错Cannot read property 'json' of null

登录页面 - 微信登录

测试步骤:
1. 在登录页面,保持断网状态
2. 点击"扫码登录"按钮

预期结果:
✅ 显示错误提示:"获取微信授权失败 - 网络请求失败,请检查网络连接"
✅ 页面不崩溃
✅ 无 JavaScript 错误

注册页面 - 发送验证码

测试步骤:
1. 打开 http://localhost:3000/auth/sign-up
2. 切换到"验证码注册"模式
3. 输入手机号13800138000
4. 保持断网状态
5. 点击"发送验证码"按钮

预期结果:
✅ 显示错误提示:"发送失败 - 网络请求失败..."
✅ 页面不崩溃

2. 组件卸载测试 - 验证内存泄漏修复

倒计时中离开页面

测试步骤:
1. 恢复网络连接
2. 在登录页面输入手机号并发送验证码
3. 等待倒计时开始60秒倒计时
4. 立即点击浏览器后退按钮或切换到其他页面
5. 打开 Console 查看是否有警告

预期结果:
✅ 无警告:"Can't perform a React state update on an unmounted component"
✅ 倒计时定时器正确清理
✅ 无内存泄漏

修复前:
❌ Console 警告Memory leak warning
❌ setState 在组件卸载后仍被调用

请求进行中离开页面

测试步骤:
1. 在注册页面填写完整信息
2. 点击"注册"按钮
3. 在请求响应前loading 状态)快速刷新页面或关闭标签页
4. 打开新标签页查看 Console

预期结果:
✅ 无崩溃
✅ 无警告信息
✅ 请求被正确取消或忽略

注册成功跳转前离开

测试步骤:
1. 完成注册提交
2. 在显示"注册成功"提示后
3. 立即关闭标签页不等待2秒自动跳转

预期结果:
✅ 无警告
✅ navigate 不会在组件卸载后执行

3. 边界情况测试 - 验证数据完整性检查

后端返回空响应

测试步骤(需要模拟后端):
1. 使用 Chrome DevTools → Network → 右键请求 → Edit and Resend
2. 修改响应为空对象 {}
3. 观察页面反应

预期结果:
✅ 显示错误:"服务器响应为空"
✅ 不会尝试访问 undefined 属性
✅ 页面不崩溃

后端返回 500 错误

测试步骤:
1. 在登录页面点击"扫码登录"
2. 如果后端返回 500 错误

预期结果:
✅ 显示错误:"获取二维码失败HTTP 500"
✅ 页面不崩溃

🧪 进阶测试(推荐)

4. 弱网环境测试

慢速网络模拟

测试步骤:
1. Chrome DevTools → Network → Throttling → Slow 3G
2. 尝试发送验证码
3. 等待 10 秒(超时时间)

预期结果:
✅ 10秒后显示超时错误
✅ 不会无限等待
✅ 用户可以重试

丢包模拟

测试步骤:
1. 使用 Chrome DevTools 模拟丢包
2. 连续点击"发送验证码"多次

预期结果:
✅ 每次请求都有适当的错误提示
✅ 不会因为并发请求而崩溃
✅ 按钮在请求期间正确禁用

5. 定时器清理测试

倒计时清理验证

测试步骤:
1. 在登录页面发送验证码
2. 等待倒计时到 50 秒
3. 快速切换到注册页面
4. 再切换回登录页面
5. 观察倒计时是否重置

预期结果:
✅ 定时器在页面切换时正确清理
✅ 返回登录页面时倒计时重新开始(如果再次发送)
✅ 没有多个定时器同时运行

6. 并发请求测试

快速连续点击

测试步骤:
1. 在登录页面输入手机号
2. 快速连续点击"发送验证码"按钮 5 次

预期结果:
✅ 只发送一次请求(按钮在请求期间禁用)
✅ 不会因为并发而崩溃
✅ 正确显示 loading 状态

🔍 监控指标

Console 检查清单

在测试过程中,打开 Console (F12) 监控以下内容:

✅ 无红色错误Error
✅ 无内存泄漏警告Memory leak warning
✅ 无 setState 警告Can't perform a React state update...
✅ 无 undefined 访问错误Cannot read property of undefined

Network 检查清单

打开 Network 标签监控:

✅ 请求超时时间10秒
✅ 失败请求有正确的错误处理
✅ 没有重复的请求
✅ 请求被正确取消(如果页面卸载)

Performance 检查清单

打开 Performance 标签(可选):

✅ 无内存泄漏Memory 不会持续增长)
✅ 定时器正确清理Timer count 正确)
✅ EventListener 正确清理

📊 测试记录表

请在测试时填写以下表格:

测试项 状态 问题描述 截图
登录页 - 断网发送验证码 通过 / 失败
登录页 - 断网微信登录 通过 / 失败
注册页 - 断网发送验证码 通过 / 失败
倒计时中离开页面 通过 / 失败
请求进行中离开页面 通过 / 失败
注册成功跳转前离开 通过 / 失败
后端返回空响应 通过 / 失败
慢速网络超时 通过 / 失败
定时器清理 通过 / 失败
并发请求 通过 / 失败

🐛 如何报告问题

如果发现问题,请提供:

  1. 测试场景:具体的测试步骤
  2. 预期结果:应该发生什么
  3. 实际结果:实际发生了什么
  4. Console 错误:完整的错误信息
  5. 截图/录屏:问题的视觉证明
  6. 环境信息
    • 浏览器版本
    • 操作系统
    • 网络状态

测试完成检查

测试完成后,确认以下内容:

□ 所有关键测试通过
□ Console 无错误
□ Network 请求正常
□ 无内存泄漏警告
□ 用户体验流畅

🎯 快速测试命令

# 1. 确认服务器运行
curl http://localhost:3000

# 2. 打开浏览器测试
open http://localhost:3000/auth/sign-in

# 3. 查看编译日志
tail -f /tmp/react-build.log

📱 测试页面链接


🔧 开发者工具快捷键

F12          - 打开开发者工具
Ctrl/Cmd+R   - 刷新页面
Ctrl/Cmd+Shift+R - 强制刷新(清除缓存)
Ctrl/Cmd+Shift+C - 元素选择器

测试时间2025-10-14 预计测试时长15-30 分钟 建议测试人员:开发者 + QA

祝测试顺利!如发现问题请及时反馈。