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

223 lines
5.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 游客模式测试指南 - 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应用的最佳实践,提供了良好的用户体验。