Files
zyt/wx/TUICallKit/TEST_GUIDE.md
T
2026-03-04 15:32:30 +08:00

379 lines
8.6 KiB
Markdown
Raw 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.
# 视频通话功能测试指南
## 测试前准备
### 1. 环境要求
- [ ] Web 端使用 HTTPS 或 localhost
- [ ] 小程序已获得摄像头和麦克风权限
- [ ] 网络连接正常
- [ ] 微信开发者工具或真机
### 2. 清除缓存
```
微信开发者工具:
1. 点击顶部菜单"工具"
2. 选择"清除缓存"
3. 勾选"全部清除"
4. 点击"确定"
真机测试:
1. 长按小程序
2. 选择"删除"
3. 重新扫码打开
```
## 测试场景 1:Web 端呼叫小程序端
### 步骤 1:小程序端登录
1. 打开小程序
2. 输入患者ID`2`
3. 点击"登录"按钮
**预期结果:**
- ✅ 显示"登录成功"提示
- ✅ 界面显示"当前登录: patient_2"
- ✅ 输入框提示变为"输入医生ID或完整userId"
**控制台日志:**
```
获取签名成功: { userId: "patient_2", sdkAppId: "1400xxxxxx", ... }
=== 小程序端登录信息 ===
sdkAppId: 1400xxxxxx
userId: patient_2
userSig 长度: xxx
TUICallKit 初始化成功, userId: patient_2
=== 事件监听已设置 ===
```
**如果失败:**
- ❌ 提示"登录失败" → 检查后端接口是否正常
- ❌ 没有"事件监听已设置"日志 → 初始化失败,检查 SDKAppID
### 步骤 2Web 端发起呼叫
1. 打开浏览器,登录医生账号
2. 进入患者管理页面
3. 找到患者ID为 2 的患者
4. 点击"视频通话"按钮
**预期结果:**
- ✅ Web 端弹出通话窗口
- ✅ 显示"等待对方接听..."
- ✅ 浏览器控制台显示"通话已发起"
**浏览器控制台日志:**
```
WebRTC 环境检测: { isHttps: true, ... }
签名获取成功: { doctorUserId: "doctor_1", patientUserId: "patient_2", ... }
TUICallKit init 方法调用完成
=== 发起一对一通话 ===
后端返回的 patientUserId: patient_2
最终使用的 targetUserId: patient_2
通话已发起,目标用户: patient_2
>>> 正在呼叫
```
**如果失败:**
- ❌ 提示"获取签名失败" → 检查后端接口
- ❌ 提示"初始化失败" → 检查 WebRTC 环境
- ❌ 提示"对方不在线" → userId 格式不匹配
### 步骤 3:小程序端接听
**预期结果:**
- ✅ 小程序自动弹出通话界面
- ✅ 显示来电提示音
- ✅ 显示"接听"和"拒绝"按钮
- ✅ 显示来电者信息(医生名称)
**小程序控制台日志:**
```
=== 收到来电 ===
{
inviter: "doctor_1",
inviteeList: ["patient_2"],
callType: 2,
...
}
```
**如果失败:**
- ❌ 小程序没有任何反应 → 检查事件监听是否设置
- ❌ 没有"收到来电"日志 → 检查 userId 格式
- ❌ 小程序闪退 → 检查权限是否授予
### 步骤 4:接听通话
1. 小程序端点击"接听"按钮
**预期结果:**
- ✅ 双方都能看到对方的视频画面
- ✅ 双方都能听到对方的声音
- ✅ 控制按钮正常工作(静音、关闭摄像头等)
**控制台日志:**
```
Web 端:
>>> 通话已接通
小程序端:
=== 通话已接通 ===
```
**如果失败:**
- ❌ 只有声音没有画面 → 检查摄像头权限
- ❌ 只有画面没有声音 → 检查麦克风权限
- ❌ 黑屏 → 检查网络连接
### 步骤 5:挂断通话
1. 任意一方点击"挂断"按钮
**预期结果:**
- ✅ 通话立即结束
- ✅ 双方都返回正常界面
- ✅ 显示"通话已结束"提示
## 测试场景 2:小程序端呼叫 Web 端
### 步骤 1Web 端保持登录
1. 浏览器打开系统
2. 医生账号登录
3. 保持页面打开
**预期结果:**
- ✅ 医生已登录
- ✅ 页面正常显示
### 步骤 2:小程序端发起呼叫
1. 小程序端已登录为 `patient_2`
2. 在输入框输入:`1``doctor_1`
3. 点击"呼叫"按钮
**预期结果:**
- ✅ 显示"正在呼叫..."
- ✅ 小程序显示呼叫界面
**小程序控制台日志:**
```
准备呼叫用户: doctor_1
发起通话成功, 目标用户: doctor_1
```
**如果失败:**
- ❌ 提示"发起通话失败" → 检查 userId 格式
- ❌ 提示"对方不在线" → Web 端未登录或 userId 不匹配
### 步骤 3Web 端接听
**预期结果:**
- ✅ Web 端自动弹出通话窗口
- ✅ 显示来电提示
- ✅ 显示"接听"和"拒绝"按钮
**浏览器控制台日志:**
```
>>> 收到来电
inviter: patient_2
```
**如果失败:**
- ❌ Web 端没有反应 → 检查是否已登录
- ❌ 提示"初始化失败" → 刷新页面重新登录
### 步骤 4:接听并测试
同场景 1 的步骤 4 和步骤 5
## 测试场景 3:拒绝通话
### 测试拒绝功能
1. 按照场景 1 或场景 2 发起通话
2. 接收方点击"拒绝"按钮
**预期结果:**
- ✅ 通话立即结束
- ✅ 发起方显示"对方已拒绝通话"
- ✅ 双方返回正常界面
## 测试场景 4:超时未接听
### 测试超时机制
1. 按照场景 1 或场景 2 发起通话
2. 接收方不做任何操作,等待 30 秒
**预期结果:**
- ✅ 30 秒后自动挂断
- ✅ 发起方显示"对方未接听"
- ✅ 双方返回正常界面
## 测试场景 5:网络中断
### 测试网络恢复
1. 正常接通通话
2. 关闭一方的网络连接
3. 等待 5-10 秒
4. 恢复网络连接
**预期结果:**
- ✅ 网络中断时显示"网络连接中断"
- ✅ 网络恢复后自动重连
- ✅ 如果无法重连,自动挂断
## 常见问题排查
### 问题 1:小程序端无法接听
**症状:** Web 端发起呼叫后,小程序端没有任何反应
**排查步骤:**
1. 检查小程序端是否已登录
```
界面应显示:"当前登录: patient_2"
```
2. 检查控制台是否有"事件监听已设置"日志
```
如果没有,说明初始化失败
```
3. 检查 userId 格式是否一致
```
Web 端:targetUserId: patient_2
小程序端:userId: patient_2
必须完全一致!
```
4. 检查 SDKAppID 是否一致
```
Web 端和小程序端必须使用同一个 SDKAppID
```
5. 检查小程序是否在前台
```
如果切换到后台,可能无法接收来电
```
**解决方案:**
- 重新登录小程序
- 确保 userId 格式一致
- 确保小程序在前台运行
### 问题 2:提示"对方不在线"
**症状:** 发起呼叫时提示"对方不在线"(错误代码 60011
**排查步骤:**
1. 确认对方已登录
2. 检查 userId 格式是否匹配
3. 检查 SDKAppID 是否一致
4. 查看后端日志确认账号已导入
**解决方案:**
- 对方重新登录
- 统一 userId 格式
- 检查后端配置
### 问题 3:无法访问摄像头/麦克风
**症状:** 黑屏或无声音
**排查步骤:**
1. 检查浏览器权限设置
2. 检查小程序权限设置
3. 检查设备是否被其他应用占用
**解决方案:**
- 浏览器:地址栏 → 权限 → 允许摄像头和麦克风
- 小程序:设置 → 权限管理 → 允许摄像头和麦克风
- 关闭其他占用设备的应用
### 问题 4:通话中断或卡顿
**症状:** 通话过程中画面卡顿或中断
**排查步骤:**
1. 检查网络连接速度
2. 检查 CPU 使用率
3. 检查是否有其他大流量应用
**解决方案:**
- 切换到更稳定的网络
- 关闭其他占用资源的应用
- 降低视频质量设置
## 测试检查清单
### 功能测试
- [ ] Web 端可以呼叫小程序端
- [ ] 小程序端可以呼叫 Web 端
- [ ] 可以正常接听通话
- [ ] 可以拒绝通话
- [ ] 可以挂断通话
- [ ] 视频画面正常显示
- [ ] 音频正常传输
- [ ] 静音功能正常
- [ ] 关闭摄像头功能正常
- [ ] 切换摄像头功能正常(移动端)
### 异常测试
- [ ] 网络中断后能正常恢复
- [ ] 超时未接听能正常处理
- [ ] 对方拒绝能正常提示
- [ ] 对方不在线能正常提示
- [ ] 权限未授予能正常提示
### 性能测试
- [ ] 通话延迟小于 300ms
- [ ] 画面流畅不卡顿
- [ ] 音频清晰无杂音
- [ ] CPU 使用率正常
- [ ] 内存使用正常
## 测试报告模板
```
测试日期:____年____月____日
测试人员:__________
测试环境:
- Web 端浏览器:__________
- 小程序版本:__________
- 网络环境:__________
测试结果:
场景 1(Web → 小程序):□ 通过 □ 失败
场景 2(小程序 → Web):□ 通过 □ 失败
场景 3(拒绝通话): □ 通过 □ 失败
场景 4(超时未接听): □ 通过 □ 失败
场景 5(网络中断): □ 通过 □ 失败
问题记录:
1. __________
2. __________
3. __________
备注:
__________
```
## 成功标准
所有测试场景都应该:
- ✅ 能够正常发起通话
- ✅ 能够正常接听通话
- ✅ 视频和音频都正常
- ✅ 控制按钮都能正常工作
- ✅ 异常情况能正常处理
- ✅ 用户体验流畅
---
**最后更新:** 2024-03-04
**版本:** 1.0