问答 Airtest 移动端 UI 自动化用例稳定性讨论

change · 2025年01月14日 · 最后由 奥西里斯的天空侠 回复于 2025年01月21日 · 6321 次阅读

目前利用 Airtest 框架维护大概 80 条左右用例 成功率大概在 90% 左右,失败原因主要有,测试环境部署,Airtest 框架识别率并非 100% 等因素,我主要想咨询下大家几点问题
1.针对于 UI 自动化脚本提升运行稳定性大家有没有什么建议
2.80 条 UI 自动化用例,成功率在 90% 左右是否达标
3.大家的公司针对于 UI 自动化成功率的要求是多少呢

共收到 11 条回复 时间 点赞

现在 airtest 对 ios18 的支持还很有限,稳定性的问题还是交给框架的开发者解决吧。作为使用者,就是多跑几次,能通过就行。

目前用 uiautomator2+ airtest 维护 300 条用例。
失败情况基本是:
1、关于网络的情况,比如搜索数据的时候,可能网络问题导致失败
2、用例逻辑关联,上一条失败了,导致下一条数据没有
3、用例与用例兼容问题,垃圾数据影响导致失败 (这个通过其他方式已解决)

维护用例除了网络问题,基本都克服了。只能在步骤上增加等待时间来解决。

自动化在业务本身没变的情况下肯定都是百分之百吧

好奇大家是怎么解决用例在批量执行得时候,因为中间用例失败了,导致后面用例执行都失败得问题呢,小菜鸡一枚!!!

用例应该具有独立性
成功率百分百几乎不存在,app 必然要有网络卡顿、设备卡顿、app 更新、app bug 等问题导致的失败
如果你们老大吃错药了一定要 100% 通过,那就给他加上足够多的 time.sleep 和足够多的循环牺牲掉效率换质量

王锦涛 回复

每条用例要有准备测试数据阶段与还原数据阶段 保证每条自动化用例的独立性才能保证成功率

直接转成数据驱动、或者每行操作单独执行,(先 str 化,然后 exec(str))
1、单步骤执行失败后,sleep(1),后重试一次
2、上下游相关的 case 放一个测试流程,部分节点做校验,不符合就退出流程
3、自动对失败的流程重试(如果是网络问题引起的,这步可以修复,一般重试 1-2 次)

change 回复

目前我得做法是每次执行前都清除 app 缓存,固定执行一些前置操作(封装成一个固定得脚本),后面再执行具体功能操作,这样虽然保证了每一个 case 独立,但是整体用例执行耗时很久(大部分都是下班后执行,偶尔上班得时候执行),铁子是什么思路嘞

王锦涛 回复

尝试下多线程多设备运行呢

ZYH 回复

大佬 代码在 git 上能看到么,想学习下

可以对失败的用例再进行重试

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册