大多数公司没有用到自动化,但实际自己又摸索过,多多少少懂点,copy 一个框架就能用,但是在面试者被问到,
1.你们公司是怎么开展自动化的,做了哪些自动化
2.做了自动化,有什么效果,多大的提升
3.在做自动化过程中,遇到什么痛点,你们是怎么样解决的
有没有实际项目经验的朋友帮忙归纳归纳
如果你说你做过自动化,这几个问题是必问的,因为从这几个问题中可以考查出你是否真正做过自动化。现在就算有实际项目经验的人给你总结一下,你也不可能在面试官面试糊弄过去的,有太多的问题能考查出你是否做过自动化了,比如说:
1,你用的是什么框架和语言,为什么要用这个?
2,这个自动化项目在你们产品有有什么不适应的地方吗?有没有考虑过如何改进?
3,针对这个框架通用的一些弱点,或是不兼容的地方,你们是如何处理的?
4,从你们现在达到效果来看,如果让你从新开始,你会如何做?
5,有没有考虑过以后如何做?或是是业界现在都是怎样做的呢?
.......
以我自身的项目经验,我的回答如下:
你们公司是怎么开展自动化的,做了哪些自动化?
回答:我们公司,在项目发布上线,稳定运行一段时间后,会开展自动化。首先,我们会根据业务流程,划分哪些功能模块实现自动化。然后安排测试,编写自动化脚本,实现自动化。自动化分为 UI 和接口,像 UI 自动化的话,主要核心是覆盖业务主流程;像接口自动化,我们是达到了 100% 覆盖,并且要实现断言,连接数据库的数据校核断言。
做了自动化,有什么效果,多大的提升?
回答:首先,我们需要把自动化的作用定位清楚,自动化的作用,实际上是回归功能,保障功能的稳定性,并不是为了发现 bug。所以,在自动化的收益方面,主要是极大的减轻测试人员的回归功能压力,在每次发布上线后,我们只需要执行一遍自动化脚本,然后等待自动化结束,查看测试报告,可快速定位执行失败的用例,以及失败的原因。相比于没有自动化的,我们项目使用了自动化之后,在每次版本发布上线,能够全方面的回归功能,及时发现因版本迭代发布导致的功能异常;
在做自动化过程中,遇到什么痛点,你们是怎么样解决的?
回答:UI 自动化,有几个痛点,是普遍存在的;
第一点:稳定性,有时候网络慢或者页面加载卡顿,容易出现加载超时,元素定位不到的情况,这种情况,我们是优化定位元素的方法,改为隐性等待,即定位到元素再执行下一步操作;
第二点:版本迭代后,元素定位失败,原因是前端改了布局或者修改了代码,导致原本的定位方法失效,这种情况,我们的处理方案是,使用相对定位,并且尽可能的完善定位元素的代码,结合多种定位方式,确保每一次能够准确定位;
第三点:执行速度慢,由于 UI 自动化,耗时比较久,我们有几种解决办法,第一种是尽量减少强制等待的时间,第二种是采用 pytest 的多线程执行,第三种是使用更加简单的进入路径,比如,进入某个页面实现自动化,我们可以直接打开该页面的 url 路径,而不是通过一层一层点击进入;
第四点:用例执行失败,我们会采用 pytest 的用例失败重新运行的方法;
第五点:执行过程,画面回放,有时候,用例执行失败了,我们想去复现,以及查看失败的原因,虽然有充足的日志记录,但是远远不够,所以,我们增加画面录制的回放功能,我们实现的办法,比较简单有效,就是在执行每一个操作步骤后,自动截屏,保存到一个临时文件,最后用例执行完之后,把所有的临时图片合并成 gif 保存起来,这样,我们就可以通过 gif 图片,查看执行过程的画面回放。
说说我自己的体会吧: