5.7 KiB
5.7 KiB
最终测试清单
✅ 代码已完成
所有修复和优化都已完成:
- ✅ 移除了不支持的 API
- ✅ 添加了详细日志
- ✅ 添加了状态监听
- ✅ 添加了 userId 格式验证
- ✅ 优化了组件结构
📋 测试前准备
1. 清除缓存
微信开发者工具 → 工具 → 清除缓存 → 全部清除
2. 重新编译
点击"编译"按钮,确认没有错误
3. 检查后端接口
确保后端返回正确的 userId 格式(字符串)
🧪 测试步骤
测试 1:小程序端登录
操作:
- 输入患者ID:
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 端发起呼叫
操作:
- Web 端打开患者详情页
- 点击"视频通话"按钮
预期日志(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:接听通话
操作:
- 小程序端点击"接听"按钮
预期结果:
- 通话状态变为
connected - 双方都能看到视频画面
- 双方都能听到声音
- 控制按钮正常工作
测试 4:小程序端发起呼叫
操作:
- 小程序端输入:
1 - 点击"呼叫"
预期日志(小程序端):
=== 准备发起呼叫 ===
输入值: 1
目标 userId: doctor_1
目标 userId 类型: string
目标 userId 长度: 8
发起通话成功, 目标用户: doctor_1
预期结果:
- 自动转换为
doctor_1 - Web 端收到来电
- 可以正常接听
检查点:
- 目标 userId 类型是
string - 目标 userId 值是
doctor_1(包含下划线) - 没有警告信息
⚠️ 常见问题
问题 1:userId 类型不是 string
症状:
userId 类型: number
原因: 后端返回的是数字而不是字符串
解决: 修改后端代码,确保返回字符串:
return [
'userId' => (string)$userId, // 强制转换为字符串
// ...
];
问题 2:userId 格式警告
症状:
⚠️ userId 格式可能不正确,应该包含下划线
原因: userId 不包含下划线(如:patient2 而不是 patient_2)
解决: 修改后端代码,确保格式正确:
$userId = 'patient_' . $patientId; // 使用下划线
问题 3:提示"对方不在线"
症状: 错误代码 60011
原因: userId 格式不匹配
解决:
- 检查 Web 端日志中的
targetUserId - 检查小程序端日志中的
userId - 确保两者完全一致
📊 成功标准
登录成功
- ✅ 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)
{
"userId": "???",
"patientUserId": "???",
"sdkAppId": "???"
}
4. 错误信息
- 错误代码
- 错误提示
- 完整的控制台日志
📚 相关文档
- USERID_FORMAT_CHECK.md - userId 格式检查指南
- READY_TO_TEST.md - 准备测试指南
- DEBUG_WITH_LOGS.md - 详细日志说明
最后更新: 2024-03-04 版本: 5.0(最终测试版) 状态: ✅ 准备测试
祝你测试顺利!🎉