- 新增 SDK API 重设计规范文档,统一各端 SDK 初始化、登录、消息接口 - 新增安全设计规范文档,涵盖密码安全、AppSecret 验证、令牌存储等安全要点 - 新增 Bug 跟踪记录文档,记录已修复问题和开放问题 - 新增测试进度跟踪文档,记录各模块测试覆盖情况和验证结果
6.9 KiB
6.9 KiB
iOS SDK 测试报告
生成时间: 2026-05-01
版本: 0.1.0
测试状态: 部分功能待测试
测试环境
| 项目 | 版本/配置 |
|---|---|
| Xcode | 16.0 |
| iOS 模拟器 | iPhone 16 Pro(iOS 18.0) |
| Swift | 5.9+ |
| Swift Tools Version | 5.9 |
| 最低 iOS 版本 | iOS 14 |
测试用例清单
TC-01 SDK 初始化测试
| 字段 | 内容 |
|---|---|
| 测试目的 | 验证 SDK 初始化及模块配置 |
| 测试步骤 | 1. 在 AppDelegate 中调用 XuqmSDK.shared.initialize(config: SDKConfig(appId:appSecret:)) 2. 确认 XuqmSDK.shared.requireConfig() 返回有效配置 3. 确认 ApiClient.shared 已配置 baseURL 与拦截器 |
| 预期结果 | 1. 初始化成功,无 fatalError 2. config.appId 与传入值一致 3. TokenStore 已实例化 |
| 实际结果 | 待测试 |
| 通过状态 | ⬜ |
TC-02 IM 登录/登出测试(UserSig 模式)
| 字段 | 内容 |
|---|---|
| 测试目的 | 验证 UserSig 鉴权登录与登出流程 |
| 测试步骤 | 1. 调用 XuqmSDK.shared.login(userId: "user_001", userSig: "xxx") 2. 观察 ImSDK.shared.login 内部触发 WebSocket 连接 3. 监听 ImEventDelegate.imClientDidConnect() 4. 调用 XuqmSDK.shared.logout() 5. 确认 ImSDK.shared.disconnect() 执行,Push Token 解注册 |
| 预期结果 | 1. currentUserId 被赋值 2. WebSocket 连接成功,状态变为 .connecting → .connected 3. delegate imClientDidConnect() 触发 4. 登出后 currentUserId 置 nil 5. PushSDK.shared.unregisterToken 被调用 |
| 实际结果 | 待测试 |
| 通过状态 | ⬜ |
TC-03 单聊消息收发测试
| 字段 | 内容 |
|---|---|
| 测试目的 | 验证单聊消息发送、接收、历史与已读 |
| 测试步骤 | 1. 调用 ImSDK.shared.sendTextMessage(toId:chatType:content:) 2. 接收方通过 ImEventDelegate.imClientDidReceiveMessage(_:) 接收 3. 调用 fetchHistory(toId:page:size:) 4. 调用 markRead(targetId:chatType:) 5. 发送方重新拉取历史,确认 status == .read |
| 预期结果 | 1. 返回 ImMessage,status 为 .sending 或 .sent 2. 接收方实时收到消息,未读角标 +1 3. 历史消息返回 [ImMessage] 4. markRead HTTP 200,未读清零 5. 发送方消息状态更新为 .read |
| 实际结果 | 待测试 |
| 通过状态 | ⬜ |
TC-04 群聊消息收发测试
| 字段 | 内容 |
|---|---|
| 测试目的 | 验证群创建、订阅、群消息收发与历史 |
| 测试步骤 | 1. 调用 createGroup(name:memberIds:groupType:) 2. 双端调用 subscribeGroup(_:) 3. 发送方调用 sendTextMessage(toId:chatType:content:)(chatType=.group) 4. 接收方通过 imClientDidReceiveGroupMessage(_:) 接收 5. 双端调用 fetchGroupHistory(groupId:page:size:) |
| 预期结果 | 1. 返回 ImGroup,memberIds 包含指定用户 2. WebSocket 订阅 /topic/group/{groupId} 成功 3. 群消息发送成功 4. 群成员实时收到消息 5. 群历史正确分页 |
| 实际结果 | 待测试 |
| 通过状态 | ⬜ |
TC-05 连接状态监听测试(新增)
| 字段 | 内容 |
|---|---|
| 测试目的 | 验证 connectionState 属性与 addConnectionStateListener 回调 |
| 测试步骤 | 1. 添加 addConnectionStateListener { state in print(state) } 2. 触发登录,观察状态流转 3. 手动断开网络,观察重连状态 4. 恢复网络,观察恢复为 .connected 5. 调用 disconnect(),观察 .disconnected |
| 预期结果 | 1. 监听器被加入数组 2. 登录时状态变化: .disconnected → .connecting → .connected 3. 断网后状态变为 .disconnected 并触发重连 4. 恢复网络后回到 .connected 5. disconnect() 后状态为 .disconnected,监听器仍保留(不移除) |
| 实际结果 | 待测试 |
| 通过状态 | ⬜ |
TC-06 Push 设备注册测试(APNs + FCM)
| 字段 | 内容 |
|---|---|
| 测试目的 | 验证 APNs 设备 Token 获取、注册与 FCM 备选方案 |
| 测试步骤 | 1. 在 AppDelegate 中调用 PushSDK.shared.requestAuthorization() 2. 系统授权后 UIApplication.shared.registerForRemoteNotifications() 3. 在 didRegisterForRemoteNotificationsWithDeviceToken 中调用 XuqmSDK.shared.registerDeviceToken(_:) 4. 确认 PushSDK.shared.registerToken(token:userId:vendor:) 调用(vendor=.apns) 5. 若集成 Firebase,验证 registerFcmToken 路径 |
| 预期结果 | 1. requestAuthorization 返回 true 2. 系统弹窗申请通知权限 3. cachedDeviceToken 被保存 4. /api/push/register 返回 200 5. FCM 路径返回 vendor=FCM,注册成功 |
| 实际结果 | 待测试 |
| 通过状态 | ⬜ |
TC-07 版本更新检查测试
| 字段 | 内容 |
|---|---|
| 测试目的 | 验证 UpdateSDK 检查 App Store 更新 |
| 测试步骤 | 1. 调用 UpdateSDK.shared.checkAppUpdate(currentVersionCode: 1) 2. 若 needsUpdate=true 且 forceUpdate=true,调用 openAppStore(url:) 3. 观察是否能正确跳转到 App Store 或下载页 |
| 预期结果 | 1. 返回 AppUpdateInfo,platform=IOS 2. forceUpdate 为布尔值,下载链接有效 3. UIApplication.shared.open 成功跳转 |
| 实际结果 | 待测试 |
| 通过状态 | ⬜ |
TC-08 UserSig 匹配登录测试(新增)
| 字段 | 内容 |
|---|---|
| 测试目的 | 验证 XuqmSDK 仅按 userId + userSig 建立 IM 登录态,不解析生命周期字段 |
| 测试步骤 | 1. 使用业务服务端签发的 UserSig 调用 XuqmSDK.shared.login(userId:userSig:) 2. 观察 ImSDK.shared.login 建立 WebSocket 连接 3. 保持连接并确认 SDK 侧不启动生命周期 Timer 4. 再次传入同一 userId 与匹配的新 UserSig 调用 login |
| 预期结果 | 1. SDK 只保存当前 userId 与 userSig 2. 不解析 JWT exp,不触发生命周期回调 3. 重新登录会覆盖当前会话并重连 IM |
| 实际结果 | 待测试 |
| 通过状态 | ⬜ |
测试汇总
| 用例编号 | 用例名称 | 状态 |
|---|---|---|
| TC-01 | SDK 初始化测试 | ⬜ 待测试 |
| TC-02 | IM 登录/登出测试(UserSig 模式) | ⬜ 待测试 |
| TC-03 | 单聊消息收发测试 | ⬜ 待测试 |
| TC-04 | 群聊消息收发测试 | ⬜ 待测试 |
| TC-05 | 连接状态监听测试 | ⬜ 待测试 |
| TC-06 | Push 设备注册测试(APNs + FCM) | ⬜ 待测试 |
| TC-07 | 版本更新检查测试 | ⬜ 待测试 |
| TC-08 | UserSig 匹配登录测试 | ⬜ 待测试 |