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

5.7 KiB
Raw Permalink Blame History

最终测试清单

代码已完成

所有修复和优化都已完成:

  • 移除了不支持的 API
  • 添加了详细日志
  • 添加了状态监听
  • 添加了 userId 格式验证
  • 优化了组件结构

📋 测试前准备

1. 清除缓存

微信开发者工具 → 工具 → 清除缓存 → 全部清除

2. 重新编译

点击"编译"按钮,确认没有错误

3. 检查后端接口

确保后端返回正确的 userId 格式(字符串)

🧪 测试步骤

测试 1:小程序端登录

操作:

  1. 输入患者ID2
  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

原因: 后端返回的是数字而不是字符串

解决: 修改后端代码,确保返回字符串:

return [
    'userId' => (string)$userId,  // 强制转换为字符串
    // ...
];

问题 2userId 格式警告

症状:

⚠️ userId 格式可能不正确,应该包含下划线

原因: userId 不包含下划线(如:patient2 而不是 patient_2

解决: 修改后端代码,确保格式正确:

$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

{
  "userId": "???",
  "patientUserId": "???",
  "sdkAppId": "???"
}

4. 错误信息

  • 错误代码
  • 错误提示
  • 完整的控制台日志

📚 相关文档

  • USERID_FORMAT_CHECK.md - userId 格式检查指南
  • READY_TO_TEST.md - 准备测试指南
  • DEBUG_WITH_LOGS.md - 详细日志说明

最后更新: 2024-03-04 版本: 5.0(最终测试版) 状态: 准备测试

祝你测试顺利!🎉