安卓自动化停止条件:什么时候重试,什么时候停止?

BeePOS LLC  |   |  11 分钟阅读

可靠的安卓自动化不会一直点击到“碰巧成功”。它会先确认当前页面,为等待和重试设置上限,检查操作结果,并在证据不足时停止或交给人工复核。

安卓自动化停止条件:什么时候重试,什么时候停止?
安卓自动化停止条件:什么时候重试,什么时候停止?

简短答案:下一步没有依据时就停止

安卓自动化停止条件是一条明确规则:当当前页面、执行结果或等待时间已经不足以支持下一步操作时,流程不得继续猜测。它可以安全结束、返回受控结果、保存证据,或者把任务交给人处理。重点不是遇到任何变化都停止,而是不把“不确定”误当成“再点一次”。

  • 继续:已确认当前页面,而且下一步操作符合预期。
  • 重试:失败可能是暂时的,而且有明确的次数和时间上限。
  • 停止或人工复核:页面未知、操作有明显后果,或事后条件没有出现。

Android UI Automator 提供条件等待与稳定性检查,WorkManager 也明确区分取消和停止后的处理。共同原则是:等待、重试和停止都要有边界。

继续、等待、重试、停止还是人工复核?

决策适用情况必须设置的边界应保存的证据
继续当前状态与下一步操作都已确认一次经过审核的状态转换当前状态与事后条件
等待App 正在加载或页面尚未稳定超时或明确的就绪条件等待时间与最后页面
重试暂时性问题可能自行恢复最大次数与重试间隔每次观察结果
停止页面未知、条件不符或风险过高立即结束停止原因与截图
人工复核流程无法安全判断或操作有明显后果负责人和处理时限完整交接资料

这五种决策不能互相替代。等待是给同一状态时间完成;重试是有限地再观察或恢复;停止是结束当前路径;人工复核则用于自动化证据不足、无法安全选择的情况。

第一步:先给每个重要页面命名

从一条短流程开始,例如打开测试版本、进入设置页面、更改一个不敏感的选项,再确认新状态。写出起始状态、预期状态和允许出现的备用状态,不要从一长串坐标开始。

  • 为每个状态选择一个最关键的可观察事实,例如 UI 属性、可见文字、已知图像或检测目标。
  • 标出绝不能自动操作的页面,例如意外账号、权限、购买、删除或生产数据页面。
  • 让另一位同事只看状态定义,也能解释为什么允许执行下一步。

安卓图像识别自动点击指南说明了为什么“找到目标”还不够:点击前要确认页面,点击后还要验证结果。

第二步:选择能证明状态的观察方式

UI 结构适合确认标签、选中状态、控件是否可用和项目数量。OCR 适合读取 UI 树无法稳定提供的可见文字。模板匹配适合外观已知的目标;目标检测适合位置或大小会变化、但类别已经验证过的对象。

不要把几个弱信号叠在一起就称为确定。应先定义一个承担主要判断的观察结果,再把其他信号保存为辅助证据。安卓视觉测试方法比较进一步说明了 UI 状态、OCR、截图、模板和检测各自适合解决什么问题。

第三步:为等待和重试设置预算

任何循环都不能无限运行。每次等待都需要超时或明确的就绪条件;每次重试都需要最大次数、合理间隔,以及“为什么再试一次可能成功”的说明。

失败情况可以再试的原因安全边界何时停止
页面仍在加载同一页面可能很快稳定等待稳定或超时就绪条件始终没有出现
元素暂时缺失内容可能稍后到达固定次数重新观察预期元素始终不存在
点击后没有切换一次输入可能漏掉重新检查页面后最多补试一次事后条件仍然缺失
出现未知弹窗或账号再次尝试不会降低不确定性不允许自动重试立即停止并交给人工复核

第四步:操作成功不等于任务完成

工具成功发送点击,只能证明输入已经尝试,不能证明 App 接受了操作。可靠流程要验证事后条件,例如新页面标题出现、开关值改变、项目数量更新,或者明确的成功状态出现。

  • 检查与业务结果直接相关的变化,不要只检查动画或点击反馈。
  • 如果操作可能删除、购买、发送或公开发布,不要在结果不确定时自动重复。
  • 事后条件失败时,保存证据并进入明确的失败路径。

第五步:失败时留下可交接的证据

  • 流程和步骤名称、App 版本、设备、系统版本、语言和屏幕方向。
  • 预期状态、实际观察结果、尝试次数和经过时间。
  • 失败时的局部截图,以及相关 OCR、匹配分数、UI 属性或检测结果。
  • 最后一个成功状态、刚执行的动作、缺少的事后条件和停止原因。

好的交接资料应让接手者无需先重跑整条流程,就能决定下一步。安卓自动化 QA 冒烟测试指南提供了更完整的真机检查示例。

莱彩 Flow 如何表达这些安全边界

莱彩 Flow 是莱彩投屏中的自动化功能。它可以把 UI 或视觉观察、条件分支、等待、有限次数循环、子流程和明确结束放进同一个可检查的工作流程。重点不是堆很多节点,而是让每个“为什么可以继续”都看得见。

部署后,莱彩 Flow Inside 可以通过手机上的莱彩 Android Agent 运行兼容的 Profile。兼容性仍取决于 Profile 使用的节点、资源、模型和网络依赖;在手机端运行并不会消除重试上限、证据和人工复核的需要。

如果还在设计第一条流程,可以先在有人观察的情况下使用莱彩投屏的 AI 安卓自动化,逐步缩小状态条件,再决定哪些步骤适合无人值守。

部署前检查清单

  • 每个操作都有明确的前置条件和事后条件。
  • 每次等待都有超时,每次重试都有最大次数。
  • 未知页面会停止或交给人,不会让流程自行猜测。
  • 具有明显后果的操作不会在结果不确定时重复执行。
  • 正确、错误、缓慢、中断和意外页面都已经测试。

可靠的安卓自动化不是运行时间最长的流程,而是能说明每个操作为何被允许、预期结果是什么,以及证据变化后为什么停止。

安卓自动化停止条件常见问题

固定延时可以代替条件等待吗?

不能。固定延时可以降低频率,但无法证明页面已经进入正确状态。应等待可观察的就绪条件,同时保留总超时。

为什么自动化不能无限重试?

因为每次重试都会消耗时间,也可能重复产生副作用。只有当失败是暂时的、操作可以安全重复,而且次数有上限时,重试才合理。

什么情况必须人工复核?

页面身份不确定、账号或权限异常,或者下一步会删除、购买、发送、公开发布时,人工复核通常比继续猜测更安全。

参考资料

下载免费版

历史版本 4.0.2: macOSWindows EXE

备注:仅支持安卓手机投屏。