Skip to content

失败类型与排障

如果你只想快速看当前失败记录,先去 结果与排障

通用排查顺序

无论是哪种失败,建议都先按下面顺序看:

  1. 失败步骤截图
    看页面当时到底停在哪、是否真的进入了预期状态。

  2. 错误信息
    判断更像找不到元素、页面未跳转、断言不一致,还是业务报错。

  3. 当前 URL 和页面状态
    确认页面是否已经跳走、是否已有登录态、是否进入了错误页或权限页。

  4. 失败步骤前后的业务上下文
    确认前一步是否真的把页面带到了下一步应该所在的状态。

  5. 步骤表达本身
    最后再判断是否要改 CSS、XPath、输入值、等待时间或局部重录。

1. 页面没有进入预期状态

典型现象

  • 本来应该进入详情页,结果还停在列表页
  • 本来应该打开登录页,结果已经在工作台
  • 本来应该展开下拉或弹窗,结果页面没有对应区域

常见原因

  • 前一步操作没有真正生效
  • 页面有旧登录态或旧会话状态
  • 路由守卫、权限校验、自动跳转改变了页面起点
  • 页面加载慢,还没进入下一状态就开始执行后续步骤

先做什么

  1. 看失败截图,确认页面到底停在哪
  2. 看当前 URL 是否已经不是原预期路由
  3. 看前一步是否有明显异常,例如没点开、没提交、没跳转
  4. 如果只是慢一点,补执行前等待

什么时候改步骤

  • 页面状态本身不对时,不要先改选择器
  • 先修前一步,或修前置状态、测试数据、登录态

2. 页面对了,但找不到元素

典型现象

  • 错误信息提示找不到目标元素
  • 截图里大致页面是对的,但目标控件没命中
  • 两个相似控件中,命中了错误的那个

常见原因

  • 页面结构改了
  • 元素文案、属性或层级变化
  • 下拉、弹窗、表格行等复杂组件缺少稳定标识
  • 同类组件太多,但业务语义不够区分

先做什么

  1. 先确认截图里的页面状态是对的
  2. 再检查当前步骤的 CSS 或 XPath
  3. 对照页面结构,看目标元素是否换了 class、属性或层级
  4. 如果是复杂组件,优先局部重录该段

什么时候改 CSS / XPath

  • 页面是对的,但元素定位失效时
  • 目标元素仍存在,只是原定位表达不稳定时

什么时候该找研发

  • 页面上多个目标几乎完全一样
  • 缺少稳定 id、data-testidname 等可区分标识
  • 同类下拉、按钮、表格行无法稳定区分

3. 元素存在,但点不到或没点对

典型现象

  • 元素看起来在页面上,但点击后没反应
  • 本来应该点右侧控件,结果点成左侧相似控件
  • 点击后下拉没展开,或展开了别的组件

常见原因

  • 元素被遮挡、未真正可交互
  • 页面还没加载完成就执行点击
  • 组件内部真实点击区域与外层结构不一致
  • 同类控件过于相似,系统命中了错误目标

先做什么

  1. 看失败截图里元素是否真的可点击
  2. 看是否有遮罩、提示框、浮层挡住目标
  3. 如果页面只是慢一点,先加小范围等待
  4. 如果是复杂组件,优先局部重录而不是死改长选择器

实战建议

  • 对表格行、下拉、弹窗按钮,不要只看按钮本身,先确认它处在正确业务上下文里
  • 如果总是点错相似目标,最好让页面补充更稳定的区分标识

4. 输入值不生效或输入后结果不对

典型现象

  • 输入框没有写入内容
  • 输入后页面结果不符合预期
  • 创建数据时提示重名、格式不合法或校验失败

常见原因

  • 目标输入框本身没找到
  • 页面控件不接受当前输入格式
  • 业务字段要求唯一值,但步骤写的是固定值
  • 当前数据格式不符合业务限制

先做什么

  1. 先确认输入框是否真的存在且可编辑
  2. 看当前输入值是否符合字段规则
  3. 如果涉及新建对象且不能重名,优先改为动态输入值

什么时候用动态输入值

适合:

  • 项目名
  • 任务名
  • 规则名
  • 唯一编号

不适合:

  • 登录账号
  • 固定查询条件
  • 需要稳定复现的断言前置值

5. 断言不通过

典型现象

  • 页面流程看起来执行成功,但文本断言失败
  • JSON 断言不一致
  • 页面内容变了,但步骤仍按旧值校验

常见原因

  • 产品文案变更
  • JSON 内容或字段顺序、结构变化
  • 页面其实没完成预期动作,只是表面跳到了对应区域

先做什么

  1. 先判断业务结果是不是真的错了
  2. 如果业务结果对,只是展示值变了,再改断言值
  3. 如果业务结果本身不对,先回查前面的步骤和页面状态

不要怎么做

  • 不要一看到断言失败就直接改断言值
  • 先确认这是产品变更,还是前面步骤已经偏了

6. 页面有业务报错弹窗或错误提示

典型现象

  • 页面出现明显错误弹窗、错误 toast、权限提示
  • 提交后显示业务失败、接口异常、参数错误

常见原因

  • 业务数据不满足要求
  • 接口报错
  • 权限不足
  • 当前环境本身异常

先做什么

  1. 先以页面错误提示和失败截图为准
  2. 再看失败步骤本身是否也存在定位不稳定
  3. 判断这是测试数据问题、权限问题,还是产品缺陷

什么时候不要先改步骤

  • 页面已经明确给出业务错误时
  • 当前问题更像系统行为、环境问题或接口异常时

7. 智能步骤执行不稳定

典型现象

  • 智能步骤没找到目标
  • 执行到一半失败
  • 点击了错误目标

常见原因

  • 指令太模糊
  • 页面中存在多个相似目标
  • 一条指令里包含太多动作

先做什么

  1. 把指令写得更具体
  2. 增加目标名称、按钮文案、所在区域等约束
  3. 把长指令拆成多条短智能步骤

什么时候不用智能步骤

  • 登录、删除、提交审批等高风险动作
  • 已经能用普通录制步骤稳定表达的场景
  • 发布准入中的关键确定性路径

8. 如何判断该改步骤,还是该找研发

更偏向改步骤的场景:

  • 页面状态对,但元素定位过时
  • 输入值、断言值、等待时间不合理
  • 当前步骤本身表达不够稳定

更偏向找研发的场景:

  • 页面上多个目标完全相似,缺少可区分标识
  • 页面有明确业务错误弹窗或接口异常
  • 权限、环境、路由守卫导致流程本身走不通
  • 页面大量依赖动态结构,无法稳定区分目标

与 FAQ 的关系

如果你遇到的是单个高频问题,优先看 FAQ
如果你已经拿着一条失败记录在排查,建议按本页的失败类型顺序处理。

回演 CueCast 产品文档