MatrixFlow自动化工作室

失败恢复

重试不是再点一次:浏览器任务的安全恢复

先了解这件事

先判断失败发生在哪个阶段,再决定读取重试、核验恢复或暂停。重复提交不应成为默认恢复手段。

先给失败分类型

网页任务失败可能来自网络中断、页面加载缓慢、按钮位置变化、登录失效或权限不足。相同错误文案不一定有相同原因。恢复前应记录目标环境、当前网址、最后一个确认成功的动作和错误信息,重新观察页面状态。页面已跳到登录入口时,继续尝试原来的发布按钮没有意义。

读取列表与提交订单的风险不同。对于已确认只读的页面观察,可以设置有限重试与逐步增加的等待时间;连续失败就暂停并报告。对于验证码、平台验证与权限不足,应交给有权限的人处理。不断刷新、换环境或重复点击,不会自动修复授权问题。

用业务标识防止重复

幂等性描述的是相同操作执行多次,预期效果仍与执行一次相同。浏览器按钮本身通常不能证明这一点:再点一次“创建”可能新增一条记录。即使底层使用某种 HTTP 方法,也要根据平台实际行为判断,不能仅凭请求名称就承诺安全。

业务流程可以利用订单号、平台记录编号或服务端支持的幂等键来识别重复请求。只有平台明确支持且正确实现时,幂等键才有相应作用。纯网页自动化不能凭空给平台增加这项能力;在缺少机制时,应通过提交前查重、提交后读回和未知结果暂停来降低重复风险。

  • 把读取、填写、最终提交、结果核验分开记录。
  • 为每次业务操作保留唯一任务标识与目标对象。
  • 同一业务对象存在未确认提交时,阻止新的重复提交。

从检查点恢复,而非从头重跑

任务涉及九个环境时,前四个已完成,第五个中断,不应默认重做前四个。恢复时先核验检查点仍有效,再处理尚未完成的部分。已填写但未提交的内容可能丢失,需要重新观察;已提交但未核验的任务则先查结果。日志应标明“等待重试”“需人工处理”“结果未知”,让用户看懂为什么停止以及下一步是什么。以上流程仍需要针对具体网站验收,不能用重试次数代替成功证据。

参考资料

读完了,继续完成你的下一步。使用本站工具