多端应用与 SDK 测试总结
很多团队的大模型产品不是只有一种形态:有的同时有 Web、App、H5、小程序、开放 SDK,甚至同一套能力会被多个业务线复用。到了测试阶段,如果还把它们当成同一种东西来测,问题就会很多。这篇不讲空话,重点是把不同载体的测试思路、边界和高频坑讲清楚。
先说结论。
SDK、Web、移动端、H5,表面上都在“调用同一个 AI 能力”,但测试重点完全不一样。SDK 更关注接口契约、初始化、回调、兼容性;Web 更关注浏览器交互、流式渲染、权限和前端状态;移动端更关注弱网、手势、生命周期、系统权限;H5 则卡在浏览器容器、桥接、登录态和页面恢复上。
02. 先把多端关系理顺
很多项目实际长这样:
后端模型 / 检索 / Agent → 统一接口层 → SDK → Web / App / H5
为什么同一能力会长出很多端
- ToC 产品要覆盖 Web 和 App。
- ToB 产品常常给客户开放 SDK。
- 活动页、分享页、轻量入口常落在 H5。
- 内部系统和外部产品往往不是一个前端架构。
为什么测试容易乱
- 把“接口通了”误当成“端上没问题”。
- 只测主端,不测弱容器和边缘机型。
- 没有区分功能问题、载体问题、桥接问题。
- 多端口径不统一,导致线上反馈很碎。
03. SDK 测试怎么做
SDK 测试和普通页面测试不一样。你测的不是一个可见界面,而是一套给别人接入的能力包。它一旦有坑,接入方排障会非常痛苦,所以 SDK 测试要更重视“契约”和“边界”。
3.1 SDK 最常测什么
| 维度 | 要看什么 |
|---|---|
| 初始化 | 是否必须传 key、环境、配置;初始化失败时提示是否清楚 |
| 接口契约 | 参数是否校验、默认值是否合理、返回结构是否稳定 |
| 回调 / 事件 | 成功、失败、超时、取消、流式事件是否按预期触发 |
| 兼容性 | 多语言版本、旧版本升级、不同系统环境是否稳定 |
| 异常处理 | 网络差、服务端报错、权限不足时行为是否可控 |
| 文档一致性 | README、示例代码、真实行为是否一致 |
3.2 SDK 很容易被忽略的点
- 参数没传时,是不是报错报得太晚。
- 异步回调是否会重复触发。
- 流式输出中断后,是否有结束信号或兜底状态。
- 版本升级后,老接入代码是否直接挂掉。
- 日志是否足够帮助接入方排障。
经验话一句。
SDK 最大的风险,往往不是“完全不能用”,而是“看起来能用,但在边界场景下行为不稳定”,比如偶发初始化失败、回调顺序乱、错误码含糊、升级后兼容性变差。
3.3 SDK 测试清单
接入前
- 安装是否顺利
- 依赖冲突说明是否清楚
- 最小 demo 能否跑通
运行中
- 正常调用是否稳定
- 超时 / 重试是否合理
- 事件和回调是否完整
升级后
- 旧参数是否还能用
- 字段是否变更
- 旧业务是否有回归
04. Web 端怎么测
Web 端看起来最熟悉,但 AI 产品到了 Web 上,问题会比传统后台页面多。因为它经常有流式输出、长文本渲染、Markdown、代码块、上传文件、浏览器权限、登录态刷新这些额外因素。
4.1 Web 端核心关注点
- 输入体验:长文本、复制粘贴、多语言、超长 prompt。
- 流式输出:中断、重连、结束信号、前端拼接是否正确。
- 渲染效果:Markdown、表格、代码块、公式、图片是否显示正常。
- 浏览器兼容:Chrome、Safari、Edge、Firefox 表现是否一致。
- 权限与安全:登录过期、上传权限、跨域、下载能力。
4.2 Web 端高频问题
| 问题 | 常见原因 |
|---|---|
| 流式回答卡住不结束 | SSE 结束信号缺失,前端兜底不足 |
| Markdown 乱掉 | 流式片段拼接逻辑有问题 |
| 上传成功但回答异常 | 前端状态已更新,后端文件处理未完成 |
| Safari 正常、Chrome 异常 | 浏览器兼容差异、缓存或事件处理差异 |
| 刷新后上下文丢失 | 前端未保存会话,后端 thread 恢复逻辑不完整 |
4.3 Web 端建议一定补的测试
- 正常提问一轮,看输入、输出、结束信号是否完整。
- 边生成边刷新页面,看会话恢复策略。
- 上传文件后连续提问,看上下文和文件绑定是否还在。
- 弱网环境下观察是否出现重复消息、顺序错乱。
- 不同浏览器下检查渲染一致性。
05. 移动端怎么测
移动端不是把 Web 页面缩小那么简单。它受系统权限、前后台切换、网络波动、机型差异、键盘、手势、通知等因素影响更大。
5.1 移动端常见测试点
| 类别 | 测试点 |
|---|---|
| 基础交互 | 输入框、发送、取消、重试、复制、分享 |
| 系统能力 | 相机、相册、麦克风、文件权限 |
| 生命周期 | 切后台、锁屏、来电、中断后恢复 |
| 网络 | 弱网、断网、切 Wi-Fi / 4G / 5G |
| 设备适配 | 屏幕尺寸、刘海屏、折叠屏、横竖屏 |
| 平台差异 | iOS 和 Android 行为是否一致 |
5.2 移动端特别容易出的问题
- 切后台回来后流式回答断掉。
- 键盘弹起把发送按钮挡住。
- 上传图片成功,但会话列表没更新。
- 权限拒绝后没有明确引导。
- Android 返回键与页面返回逻辑冲突。
移动端一个很现实的经验。
很多线上问题不是“功能完全坏了”,而是“在某个机型、某种网络、某个页面切换动作下才出”。所以移动端测试不能只看主流程,也要看生命周期和系统环境变化。
06. H5 怎么测
H5 常常最容易被低估。很多团队觉得它只是“手机网页”,其实它正好卡在 Web 和 App 中间:一边受浏览器约束,一边又常常嵌在 App 容器里,还可能涉及 JSBridge、登录态共享、返回行为和页面缓存。
6.1 H5 的典型测试重点
- 在外部浏览器打开,和在 App 内 WebView 打开,行为是否一致。
- 登录态是否能正确继承。
- 分享、唤起 App、返回上一页这些动作是否顺畅。
- 不同容器下文件上传、复制、下载能力是否受限。
- 页面被挂起、恢复、重新进入时状态是否还在。
6.2 H5 为什么总让人感觉问题特别碎
| 原因 | 表现 |
|---|---|
| 容器差异 | 微信内打开、App 内打开、系统浏览器打开行为不同 |
| 桥接差异 | 某些端支持 JSBridge,某些端不支持 |
| 缓存策略差异 | 返回页面后状态丢失或旧数据残留 |
| 能力限制 | 上传、下载、麦克风权限表现不一致 |
6.3 H5 最值得提前测的 5 件事
- 多入口打开是否一致。
- 登录态继承和过期处理是否一致。
- 返回和关闭行为是否符合用户习惯。
- 桥接功能失败时有没有降级。
- 弱网和页面恢复时是否会重复提交。
07. 多端一致性怎么抓
多端一致性不是要求每个端长得一模一样,而是要求核心能力一致、关键规则一致、用户预期一致。
7.1 哪些地方必须一致
- 同一个问题,核心答案不应该一个端对一个端错。
- 权限规则、会员规则、额度规则不能一端严格一端宽松。
- 上传支持范围和大小限制至少要口径一致。
- 错误提示和兜底行为要有统一标准。
7.2 哪些地方允许不完全一致
- 布局和交互细节可以因端而异。
- 移动端可能比 Web 多相机、录音、系统分享入口。
- H5 可能因为容器限制,部分能力需要降级。
一个很实用的判断标准。
不要追求“视觉上完全一样”,而要先抓“业务规则不能打架”。真正容易出事故的,往往不是按钮位置不同,而是同一个功能在不同端口径不一致。
08. 常见问题与测试点
SDK
- 初始化偶发失败
- 回调重复触发
- 错误码不可读
- 升级后老代码不兼容
Web
- 流式渲染错乱
- 浏览器兼容问题
- 上传状态不同步
- 刷新后会话丢失
移动端 / H5
- 切后台中断
- 键盘遮挡
- 桥接失败无兜底
- 登录态不一致
8.1 如果你时间很紧,优先测什么
| 对象 | 最先测 |
|---|---|
| SDK | 初始化、最小调用、错误处理、版本兼容 |
| Web | 主流程提问、流式输出、上传、刷新恢复、主浏览器兼容 |
| 移动端 | 主流程、权限、弱网、切后台、主机型 |
| H5 | 多入口打开、登录态、返回行为、桥接能力 |
09. 一套实用测试策略
如果你负责的是一个“同一套 AI 能力,多端一起发”的项目,可以按这个顺序推进:
- 先把接口和业务规则打稳,别让端上测出来的是后端基本错误。
- 再分载体列清单:SDK 一份、Web 一份、移动端一份、H5 一份。
- 然后补一份多端一致性清单,专门抓口径问题。
- 最后再看自动化和回归优先级,别一开始就全面自动化。
别一上来就追求“大而全”。
更稳妥的做法是:先把主流程和高风险点测住,再逐步补兼容性、弱网、边界场景。多端项目最怕的是清单太大,最后主流程和关键规则反而漏掉。
9.1 一个你可以直接拿去用的分层法
- **第一层:**接口和规则是否正确。
- **第二层:**端上核心交互是否通顺。
- **第三层:**端差异、容器差异、机型差异是否可控。
- **第四层:**多端口径是否一致。
10. 推荐你下一步怎么学
如果你不想只看总览,下面这四篇可以按顺序拆开学:
- SDK 测试专项:适合先把“接入能力包”这件事理清。
- Web 端 AI 测试专项:把浏览器、流式、渲染、上传这些问题吃透。
- 移动端 AI 测试专项:把权限、切后台、弱网、机型问题补上。
- H5 测试专项:把容器、桥接、登录态、返回行为分清。
如果你偏客户端测试
建议从 Web 或移动端开始,再回头看总结页,会更容易对照真实问题。
如果你偏平台或开放能力
建议先看 SDK,再接多端一致性和自动化方案。
最后一句。
多端测试最怕“混着测”。一旦你能先分清 SDK、Web、移动端、H5 这四类对象,各自的测试重点就会清楚很多,排障也会快很多。
补充练习与参考答案
补充练习
- 总结多端 AI 接入时最容易出现的 3 类一致性问题。
- 为什么 SDK 封装层经常成为跨端问题的放大器?
- 设计一个你会用于发版前的多端回归清单。
参考答案要点
- 一致性问题通常集中在参数默认值、错误处理、流式行为和结构化输出解析差异。
- SDK 一旦把后端能力再次封装,就可能在不同平台引入自己的状态、缓存和兼容逻辑,从而放大差异。
- 发版回归至少应覆盖主链路、异常链路、弱网、升级兼容和多版本共存场景。