UI自动化常见的5中不稳定因素:
- 非预计的弹出对话框。
- 页面控件属性的细微变化
- 别扯系统的A/B测试
- 随机的页面延迟造成控件识别失败
- 测试的数据问题
解决办法:
- 非预计的弹出对话框
产生原因:有的网站可能会某一时刻产生广告之类的弹框。随机出现,影响自动化用例的执行。
解决策略:在规定时间内,定位不到页面属性时,可能存在弹框,将异常捕获,执行(确定,取消等按钮)。
- 页面控件属性的细微变化
产生原因:前端稍微修改之后,导致页面的控件定位发生错误。
解决策略:采用相对路径,更重要的是对UI自动化进行封装,当我对UI自动化脚本进行封装4次之后,每次前端修改,只要不是大型的改动,只需要几分钟就可以更改调试成功。
- 被测系统的A/B测试
产生原因:一个网址可能跳转到不同的一个或者几个页面
解决策略:针对不同的版本进行分支处理
- 随机的页面延迟造成控件识别失败
产生原因:网络延迟或者丢包卡顿等。
解决办法:显示等待,隐性等待机制。但是根据我个人的经验,最好的做法是对selenium接口进行二次封装,解决等待问题,而且,隐式等待机制最好是用在页面跳转上。
- 测试数据问题
产生原因:有的网站测试数据只能使用一次,例如,注册用户姓名不能重复,订单不能重复等问题
解决办法:在运行脚本之前,链接到数据库,通过脚本,将原来的数据删除掉。