🌈赏金任务 - UI 自动化中怎样增加脚本的稳定性?

赏金任务每周更新,请持续关注哦 :love_letter:

题目

  • UI 自动化中怎样增加脚本的稳定性?

参与方式

  • 本帖下方回复你的答案即可

赏金

  • 100元京东购物卡

活动时间

  • 2023年1月30日 - 2023年2月3日

本周赏金任务汇总::rainbow:赏金任务发布 2023-01-30

本问题参与赏金活动,详情点击 :rainbow: 赏金活动上线啦 丨做赏金任务挑战千元奖金 查看活动介绍

1.尽量使用相对路径xpath css等方式进行定位,避免使用随机id等
2.元素等待使用显示等待
3.用例解耦,避免依赖,可以单独执行,执行成功/失败对测试环境进行还原
4.用例脚本加入失败重试机制
5.用例脚本加入每次执行的tag标签,避免重复数据导致不可用
6.项目框架使用PO模式定义

  1. 针对定位不准
  • 尽量使用相对路径,减少因为UI位置/ID的变动更新引发的定位不准
  • 控制页面滑动,防止因为页面展示不全而定位不到元素信息
  • 对于不同版本/采取分支管理,区别执行
  • 网络延迟识别失败,可以提高显性等待时长
  • 弹窗、toast等非必现对话框,需要设计规定时长,否则尝试捕捉异常,定位关闭或确定按钮
  1. 针对测试数据
  • 数据驱动统一管理测试数据
  • random生成随机数据
  • tear down时清除测试数据
  1. 针对框架稳定
  • 降低用例相互耦合的程度,一条用例只检查一个场景,用完即清
  • 统一测试环境,减少因为测试环境或者第三方依赖库的更新而引发的变动
  • 脚本异常处理,对可能出现结果异常进行识别,避免因为执行失败而中断整个测试
  • 提高执行频率,及时维护用例更新,不断提高用例的成熟度
1 个赞

1.定位
xpath和xpath轴,相对路径
2.case
单条用例持续时间短,独立,链路不要太长,执行完恢复原状态
3.重试机制
4.封装,解偶
5.等待显示等待和隐式等待
6.关键字驱动模式,数据剥离

首先稳定性应该保障长时间运行的稳定性以及多次回归的稳定性;
从环境层面来看:

  • 保证运行环境的项目稳定;

  • 保障网络的稳定

从代码角度看

  • 用例之间要减少依赖,减少无用关联;

  • 添加失败截图,方便快速定位问题;

  • pytest可以采用重试机制,运行失败后重试运行,减少误报概率;

  • 定位方式尽量使用相对定位,防止元素突然出现变更;

  • 使用显示等待;

  • 添加try等异常捕获机制;