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

293 lines
5.7 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.
# 最终测试清单
## ✅ 代码已完成
所有修复和优化都已完成:
- ✅ 移除了不支持的 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
- [ ] 没有警告信息
### 测试 2Web 端发起呼叫
**操作:**
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`(包含下划线)
- [ ] 没有警告信息
## ⚠️ 常见问题
### 问题 1userId 类型不是 string
**症状:**
```
userId 类型: number
```
**原因:** 后端返回的是数字而不是字符串
**解决:** 修改后端代码,确保返回字符串:
```php
return [
'userId' => (string)$userId, // 强制转换为字符串
// ...
];
```
### 问题 2userId 格式警告
**症状:**
```
⚠️ 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 格式正确
- ✅ 对方收到来电
- ✅ 可以正常接听
## 🎯 完整测试流程
### 流程 1Web → 小程序
```
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. 输入医生ID1
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(最终测试版)
**状态:** ✅ 准备测试
**祝你测试顺利!🎉**