UI自动化常见的5中不稳定因素:

  1. 非预计的弹出对话框。
  2. 页面控件属性的细微变化
  3. 别扯系统的A/B测试
  4. 随机的页面延迟造成控件识别失败
  5. 测试的数据问题

解决办法:

  • 非预计的弹出对话框

产生原因:有的网站可能会某一时刻产生广告之类的弹框。随机出现,影响自动化用例的执行。

解决策略:在规定时间内,定位不到页面属性时,可能存在弹框,将异常捕获,执行(确定,取消等按钮)。

  • 页面控件属性的细微变化

产生原因:前端稍微修改之后,导致页面的控件定位发生错误。

解决策略:采用相对路径,更重要的是对UI自动化进行封装,当我对UI自动化脚本进行封装4次之后,每次前端修改,只要不是大型的改动,只需要几分钟就可以更改调试成功。

  • 被测系统的A/B测试

产生原因:一个网址可能跳转到不同的一个或者几个页面

解决策略:针对不同的版本进行分支处理

  • 随机的页面延迟造成控件识别失败

产生原因:网络延迟或者丢包卡顿等。

解决办法:显示等待,隐性等待机制。但是根据我个人的经验,最好的做法是对selenium接口进行二次封装,解决等待问题,而且,隐式等待机制最好是用在页面跳转上。

  • 测试数据问题

产生原因:有的网站测试数据只能使用一次,例如,注册用户姓名不能重复,订单不能重复等问题

解决办法:在运行脚本之前,链接到数据库,通过脚本,将原来的数据删除掉。