5.4 KiB
5.4 KiB
游客模式测试指南 - 2026-02-01
修复完成状态
✅ 后端服务: 已重新编译并启动 (端口: 8089) ✅ 前端小程序: 已清除缓存并重新编译完成
测试准备
1. 确保服务正常运行
后端服务检查:
- 访问: http://localhost:8089/api
- 应该看到服务正常响应
前端小程序:
- 在微信开发者工具中打开:
peidu/uniapp/dist/dev/mp-weixin - 点击"清缓存" → "清除全部缓存"
- 点击"编译" → "清除缓存并重新编译"
2. 进入游客模式
方法1: 退出登录
- 进入"我的"页面
- 点击"退出登录"
方法2: 清除本地存储
- 在微信开发者工具的控制台执行:
uni.removeStorageSync('token')
uni.removeStorageSync('userInfo')
验证游客模式:
- 控制台执行:
uni.getStorageSync('token') - 应该返回空字符串或undefined
测试场景
场景1: 选择陪伴员页面
路径: 首页 → 选择陪伴员
测试步骤:
- 点击首页的"选择陪伴员"按钮
- 进入教师列表页面
预期结果:
- ✅ 页面正常显示教师列表
- ✅ 可以看到教师的头像、姓名、标签、简介、评分、价格等信息
- ✅ 可以使用筛选功能(科目、区域、年级、排序)
- ✅ 控制台没有401错误
- ✅ 没有"登录已过期"弹窗
点击"立即预约":
- ✅ 应该提示需要登录
- ✅ 跳转到登录页面
场景2: 兴趣培养页面
路径: 首页 → 兴趣培养
测试步骤:
- 点击首页的"兴趣培养"按钮
- 进入兴趣课程列表页面
预期结果:
- ✅ 页面正常显示课程列表
- ✅ 可以看到课程的图片、标题、价格等信息
- ✅ 可以浏览课程详情
- ✅ 控制台没有401错误
- ✅ 没有"登录已过期"弹窗
点击"立即购买":
- ✅ 应该提示需要登录
- ✅ 跳转到登录页面
场景3: 专项突破页面
路径: 首页 → 专项突破
测试步骤:
- 点击首页的"专项突破"按钮
- 进入专项课程列表页面
预期结果:
- ✅ 页面正常显示课程列表
- ✅ 可以看到课程的图片、标题、价格等信息
- ✅ 可以浏览课程详情
- ✅ 控制台没有401错误
- ✅ 没有"登录已过期"弹窗
点击"立即购买":
- ✅ 应该提示需要登录
- ✅ 跳转到登录页面
场景4: 服务列表页面
路径: 首页 → 服务列表
测试步骤:
- 点击首页的"服务列表"按钮
- 进入服务列表页面
预期结果:
- ✅ 页面正常显示服务列表
- ✅ 可以看到服务的图片、标题、价格等信息
- ✅ 可以浏览服务详情
- ✅ 控制台没有401错误
- ✅ 没有"登录已过期"弹窗
点击"立即预约":
- ✅ 应该提示需要登录
- ✅ 跳转到登录页面
控制台检查
正常的日志
前端:
[Request] 当前环境: 生产环境
[Request] BASE_URL: https://px.ddn-ai.cloud
[Request] 游客模式,白名单接口返回401,静默失败,不影响页面显示: /api/teacher/list
后端:
=== JWT拦截器执行 ===
请求路径: /api/teacher/list
Authorization Header: null
token为空,放行请求
=== JWT拦截器执行完成 ===
不应该出现的错误
❌ 前端控制台:
- "登录已过期"
- "token已过期"
- 401错误弹窗
❌ 后端日志:
- "token验证失败"
- "不存在"异常
登录后测试
测试登录功能
步骤:
- 在游客模式下点击"立即预约"或"立即购买"
- 跳转到登录页面
- 输入账号密码登录
预期结果:
- ✅ 登录成功后跳转到首页
- ✅ 可以正常使用所有功能
- ✅ 可以提交订单和支付
验证已登录用户功能
测试:
- 浏览教师列表 - 应该正常显示
- 点击"立即预约" - 应该进入预约页面(不提示登录)
- 提交订单 - 应该正常提交
- 查看订单列表 - 应该显示自己的订单
问题排查
如果页面仍然显示401错误
检查1: 后端服务是否重启
# 检查Java进程
tasklist | findstr java
检查2: 前端缓存是否清除
- 在微信开发者工具中点击"清缓存" → "清除全部缓存"
- 重新编译
检查3: 查看后端日志
- 检查JWT拦截器是否输出"token为空,放行请求"
检查4: 查看前端请求
- 打开控制台Network标签
- 查看请求是否发送token
- 游客模式下不应该发送token
如果页面空白
检查1: 后端是否返回数据
- 在浏览器中访问: http://localhost:8089/api/teacher/list
- 应该返回教师列表数据
检查2: 前端是否正确解析数据
- 查看控制台是否有JavaScript错误
- 查看Network标签中的响应数据
测试完成标准
所有以下条件都满足才算测试通过:
- 游客模式下选择陪伴员页面正常显示数据
- 游客模式下兴趣培养页面正常显示数据
- 游客模式下专项突破页面正常显示数据
- 游客模式下服务列表页面正常显示数据
- 控制台没有401错误
- 没有"登录已过期"弹窗
- 点击预约/购买时提示登录
- 登录后所有功能正常
- 已登录用户不受影响
总结
这次修复的核心是:
- 后端: JWT拦截器在没有token时直接放行,不抛出异常
- 前端: 游客模式访问白名单接口时401错误静默处理
- 效果: 游客可以浏览所有数据,但不能下单和支付
这样的设计符合现代Web应用的最佳实践,提供了良好的用户体验。