293 lines
5.7 KiB
Markdown
293 lines
5.7 KiB
Markdown
# 最终测试清单
|
||
|
||
## ✅ 代码已完成
|
||
|
||
所有修复和优化都已完成:
|
||
- ✅ 移除了不支持的 API
|
||
- ✅ 添加了详细日志
|
||
- ✅ 添加了状态监听
|
||
- ✅ 添加了 userId 格式验证
|
||
- ✅ 优化了组件结构
|
||
|
||
## 📋 测试前准备
|
||
|
||
### 1. 清除缓存
|
||
```
|
||
微信开发者工具 → 工具 → 清除缓存 → 全部清除
|
||
```
|
||
|
||
### 2. 重新编译
|
||
```
|
||
点击"编译"按钮,确认没有错误
|
||
```
|
||
|
||
### 3. 检查后端接口
|
||
确保后端返回正确的 userId 格式(字符串)
|
||
|
||
## 🧪 测试步骤
|
||
|
||
### 测试 1:小程序端登录
|
||
|
||
**操作:**
|
||
1. 输入患者ID:`2`
|
||
2. 点击"登录"
|
||
|
||
**预期日志:**
|
||
```
|
||
=== 页面已挂载 ===
|
||
=== 已设置详细日志级别 ===
|
||
获取签名成功: { userId: "patient_2", ... }
|
||
=== 小程序端登录信息 ===
|
||
sdkAppId: 1400xxxxxx
|
||
userId: patient_2
|
||
userId 类型: string
|
||
userId 长度: 9
|
||
userSig 长度: xxx
|
||
TUICallKit 初始化成功, userId: patient_2
|
||
=== TUICallKit 初始化完成,等待来电 ===
|
||
=== TUICallKit 组件已挂载 ===
|
||
当前通话状态: IDLE
|
||
完整状态信息: { ... }
|
||
```
|
||
|
||
**预期界面:**
|
||
```
|
||
当前登录: patient_2
|
||
通话状态: IDLE
|
||
```
|
||
|
||
**检查点:**
|
||
- [ ] userId 类型是 `string`
|
||
- [ ] userId 值是 `patient_2`(包含下划线)
|
||
- [ ] userId 长度是 9
|
||
- [ ] 没有警告信息
|
||
|
||
### 测试 2:Web 端发起呼叫
|
||
|
||
**操作:**
|
||
1. Web 端打开患者详情页
|
||
2. 点击"视频通话"按钮
|
||
|
||
**预期日志(Web 端):**
|
||
```
|
||
=== 发起一对一通话 ===
|
||
后端返回的 patientUserId: patient_2
|
||
最终使用的 targetUserId: patient_2
|
||
通话已发起,目标用户: patient_2
|
||
```
|
||
|
||
**预期日志(小程序端):**
|
||
```
|
||
[tuikit engine wasm] onNewMessageReceived
|
||
=== 通话状态变化 === calling
|
||
可能的状态值: idle, calling, connected
|
||
=== 通话角色 === callee
|
||
=== 通话类型 === 1 或 2
|
||
=== 是否群组通话 === false
|
||
```
|
||
|
||
**预期界面(小程序端):**
|
||
```
|
||
- 通话状态从 IDLE 变为 calling
|
||
- TUICallKit 组件自动显示来电界面
|
||
- 显示"接听"和"拒绝"按钮
|
||
```
|
||
|
||
**检查点:**
|
||
- [ ] Web 端 targetUserId 是 `patient_2`(字符串)
|
||
- [ ] 小程序端收到来电信号
|
||
- [ ] 小程序端状态变为 `calling`
|
||
- [ ] 小程序端界面显示来电
|
||
|
||
### 测试 3:接听通话
|
||
|
||
**操作:**
|
||
1. 小程序端点击"接听"按钮
|
||
|
||
**预期结果:**
|
||
- [ ] 通话状态变为 `connected`
|
||
- [ ] 双方都能看到视频画面
|
||
- [ ] 双方都能听到声音
|
||
- [ ] 控制按钮正常工作
|
||
|
||
### 测试 4:小程序端发起呼叫
|
||
|
||
**操作:**
|
||
1. 小程序端输入:`1`
|
||
2. 点击"呼叫"
|
||
|
||
**预期日志(小程序端):**
|
||
```
|
||
=== 准备发起呼叫 ===
|
||
输入值: 1
|
||
目标 userId: doctor_1
|
||
目标 userId 类型: string
|
||
目标 userId 长度: 8
|
||
发起通话成功, 目标用户: doctor_1
|
||
```
|
||
|
||
**预期结果:**
|
||
- [ ] 自动转换为 `doctor_1`
|
||
- [ ] Web 端收到来电
|
||
- [ ] 可以正常接听
|
||
|
||
**检查点:**
|
||
- [ ] 目标 userId 类型是 `string`
|
||
- [ ] 目标 userId 值是 `doctor_1`(包含下划线)
|
||
- [ ] 没有警告信息
|
||
|
||
## ⚠️ 常见问题
|
||
|
||
### 问题 1:userId 类型不是 string
|
||
|
||
**症状:**
|
||
```
|
||
userId 类型: number
|
||
```
|
||
|
||
**原因:** 后端返回的是数字而不是字符串
|
||
|
||
**解决:** 修改后端代码,确保返回字符串:
|
||
```php
|
||
return [
|
||
'userId' => (string)$userId, // 强制转换为字符串
|
||
// ...
|
||
];
|
||
```
|
||
|
||
### 问题 2:userId 格式警告
|
||
|
||
**症状:**
|
||
```
|
||
⚠️ userId 格式可能不正确,应该包含下划线
|
||
```
|
||
|
||
**原因:** userId 不包含下划线(如:`patient2` 而不是 `patient_2`)
|
||
|
||
**解决:** 修改后端代码,确保格式正确:
|
||
```php
|
||
$userId = 'patient_' . $patientId; // 使用下划线
|
||
```
|
||
|
||
### 问题 3:提示"对方不在线"
|
||
|
||
**症状:** 错误代码 60011
|
||
|
||
**原因:** userId 格式不匹配
|
||
|
||
**解决:**
|
||
1. 检查 Web 端日志中的 `targetUserId`
|
||
2. 检查小程序端日志中的 `userId`
|
||
3. 确保两者完全一致
|
||
|
||
## 📊 成功标准
|
||
|
||
### 登录成功
|
||
- ✅ userId 类型是 `string`
|
||
- ✅ userId 格式是 `prefix_number`(如:`patient_2`)
|
||
- ✅ 没有格式警告
|
||
- ✅ 界面显示正确的 userId
|
||
|
||
### 接收来电成功
|
||
- ✅ 收到 `onNewMessageReceived` 事件
|
||
- ✅ 状态变为 `calling`
|
||
- ✅ 界面自动显示来电
|
||
- ✅ 可以正常接听
|
||
|
||
### 发起呼叫成功
|
||
- ✅ 目标 userId 格式正确
|
||
- ✅ 对方收到来电
|
||
- ✅ 可以正常接听
|
||
|
||
## 🎯 完整测试流程
|
||
|
||
### 流程 1:Web → 小程序
|
||
|
||
```
|
||
1. 小程序端登录(patient_2)
|
||
↓
|
||
2. 检查 userId 格式(string, patient_2)
|
||
↓
|
||
3. Web 端发起呼叫(target: patient_2)
|
||
↓
|
||
4. 小程序端收到来电
|
||
↓
|
||
5. 状态变为 calling
|
||
↓
|
||
6. 界面显示来电
|
||
↓
|
||
7. 点击接听
|
||
↓
|
||
8. 通话成功
|
||
```
|
||
|
||
### 流程 2:小程序 → Web
|
||
|
||
```
|
||
1. 小程序端登录(patient_2)
|
||
↓
|
||
2. 输入医生ID(1)
|
||
↓
|
||
3. 自动转换为 doctor_1
|
||
↓
|
||
4. 检查格式(string, doctor_1)
|
||
↓
|
||
5. 发起呼叫
|
||
↓
|
||
6. Web 端收到来电
|
||
↓
|
||
7. 点击接听
|
||
↓
|
||
8. 通话成功
|
||
```
|
||
|
||
## 📞 需要提供的信息
|
||
|
||
如果测试失败,请提供:
|
||
|
||
### 1. 登录日志
|
||
```
|
||
=== 小程序端登录信息 ===
|
||
sdkAppId: ???
|
||
userId: ???
|
||
userId 类型: ???
|
||
userId 长度: ???
|
||
```
|
||
|
||
### 2. 呼叫日志(如果是小程序发起)
|
||
```
|
||
=== 准备发起呼叫 ===
|
||
输入值: ???
|
||
目标 userId: ???
|
||
目标 userId 类型: ???
|
||
目标 userId 长度: ???
|
||
```
|
||
|
||
### 3. 后端响应(隐藏 userSig)
|
||
```json
|
||
{
|
||
"userId": "???",
|
||
"patientUserId": "???",
|
||
"sdkAppId": "???"
|
||
}
|
||
```
|
||
|
||
### 4. 错误信息
|
||
- 错误代码
|
||
- 错误提示
|
||
- 完整的控制台日志
|
||
|
||
## 📚 相关文档
|
||
|
||
- **USERID_FORMAT_CHECK.md** - userId 格式检查指南
|
||
- **READY_TO_TEST.md** - 准备测试指南
|
||
- **DEBUG_WITH_LOGS.md** - 详细日志说明
|
||
|
||
---
|
||
|
||
**最后更新:** 2024-03-04
|
||
**版本:** 5.0(最终测试版)
|
||
**状态:** ✅ 准备测试
|
||
|
||
**祝你测试顺利!🎉**
|