Appearance
回放测试
回放会按步骤顺序在真实浏览器中执行用例。
回放的目标是验证业务路径是否仍然可用,并在失败时留下足够线索帮助定位问题。
执行链路
CueCast 使用双链路回放:
- CDP 主路径:通过 Chrome DevTools Protocol 模拟真实鼠标和键盘操作。
- DOM 降级:CDP 不可用或部分场景失败时,降级为 DOM 操作。
定位策略
回放优先使用录制时自动生成的智能定位信息,按稳定性从高到低尝试,包括元素语义、组件根节点、CSS、XPath 和文本线索。
对于下拉浮层等需要先触发再出现的元素,CueCast 会执行 trigger-first 策略,先打开组件,再查找选项。
多标签页回放
如果用例中包含「切换标签页」步骤,回放会维护本次执行的 tab 上下文,并按录制时的 tab 编号切换。
基本规则:
tab #0是用例起始页。- 新 tab 由录制页打开时,会记录为
tab #1、tab #2等。 - 回放遇到「切换标签页」步骤时,会切换到对应 tab 并继续执行后续步骤。
- 如果业务正常关闭了某个新 tab,只要本次回放仍有其它存活 tab,回放不会把它误判为用户手动停止。
当前匹配策略以 tab 编号为主,并结合 URL 作为辅助判断。由于录制和回放都会在 CueCast 打开的窗口中进行,tab 编号在大多数场景下是稳定的。
如果切换失败,建议检查:
- 点击后新 tab 是否实际打开。
- 浏览器是否拦截了
window.open或弹窗。 - 新 tab 是否在业务流程中自动关闭。
- 录制时和回放时是否出现了额外公告页、登录页或授权页,导致 tab 顺序不同。
iframe 暂未纳入多标签页上下文。iframe 内交互可能无法稳定录制或回放,建议等待 iframe 上下文能力增强后再作为正式用例。
执行前检查
执行前建议确认:
- Chrome 扩展状态为「插件已就绪」。
- 目标页面可以从当前网络访问。
- 当前浏览器具备目标系统登录态;如果是执行计划,建议配置登录准备。
- 测试数据存在,且不会被其他人或其他计划并发修改。
- 起始 URL 指向正确环境。
执行窗口尺寸
用例可以配置回放时打开浏览器窗口的尺寸。默认策略是最大化窗口,也就是执行时尽量以全屏/最大化状态打开回放窗口,减少因为窗口过小导致菜单折叠、元素不可见或响应式布局变化。
在用例详情页点击「编辑用例信息」,可以调整执行窗口尺寸:
| 策略 | 说明 | 适用场景 |
|---|---|---|
| 默认最大化 | 执行时打开最大化窗口。 | 大多数回放场景,推荐默认使用。 |
| 当前窗口尺寸 | 使用发起执行时当前中台窗口的尺寸。 | 需要贴近当前调试窗口大小时使用。 |
| 自定义尺寸 | 手动设置宽高。 | 需要固定验证某个分辨率或响应式布局时使用。 |
单条回放、分组批量执行和执行计划都会按用例配置打开或调整回放窗口。若用例依赖特定布局,建议配置固定尺寸,并在保存后单条回放验证。

等待与稳定性
CueCast 会等待页面加载状态,并在步骤前按配置等待。对于加载慢、动画长或数据异步刷新明显的页面,可以适当增加步骤等待时间。
如果页面存在全局 loading、骨架屏或二次确认弹窗,建议让页面提供明确的稳定状态,而不是依赖固定等待。
点击步骤执行前,CueCast 会检查目标元素是否可交互,包括原生 disabled、组件 loading、遮罩覆盖、只读状态等。若元素已找到但仍处于禁用或 loading 状态,系统会等待一段时间;超时后会在错误信息中展示禁用原因和来源,帮助判断是页面还没稳定,还是用例步骤过早执行。
步骤级等待在 步骤配置 中说明。它只影响当前步骤执行前的等待时间,适合处理局部动画、接口加载或组件未就绪。
常见失败原因
- 起始 URL 不可访问
- 未登录或登录态失效
- 页面加载过慢
- 目标元素被遮挡
- 页面结构变化
- 测试数据不存在
- 断言文本变化
- 固定输入值重复导致新建失败
失败后可优先查看执行结果中的失败步骤、截图和错误信息。
单条执行与计划执行
| 执行方式 | 适用场景 | 说明 |
|---|---|---|
| 单条回放 | 录制后验证、修复失败用例 | 反馈最快,适合维护阶段。 |
| 分组批量执行 | 一次性跑一组相关用例 | 适合模块级回归。 |
| 执行计划 | 发布前冒烟或完整回归 | 支持顺序、历史和失败即停止策略。 |

从执行结果看回放过程
执行详情支持两种查看方式:
- 截图模式:按步骤查看截图,更适合复盘页面当时停在哪。
- 明细模式:按表格查看每一步的时间、步骤描述、操作对象、命中 Locator、耗时和结果,更适合排查“实际点到了谁”和“哪一步开始偏离”。
明细模式中的“命中 Locator”展示的是回放运行时实际命中的定位信息,而不是单纯从录制记录里读取的旧值。内容较长时可以悬浮查看完整文本并复制。
