peixue-dev/Archive/[一次性]游客模式测试指南-2026-02-01.md

223 lines
5.4 KiB
Markdown
Raw Permalink Normal View History

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