A君:“我想学自动化,我得从哪里学起?”
我:“你想学类型的自动化?”
A君:“就是自动化测试啊!!哪里还分什么类型自动化”
我:“。。。。。。”
好吧,其实我是知道A君想问的是UI自动化测试,我也是故意不直说,因为我晓得在他的观念里自动化等同于自动化测试等同于UI自动化,然而它们的关系绝不是等同关系。
按我的理解,所有机器代理手工执行某种过程,都叫可以叫自动化,那自动化测试就是机器代理手工执行测试的过程叫做自动化测试。UI自动化测试也仅仅是自动化测试的一个分支。
现在很主流的一个观念,分层自动化测试(经典图如下)分三层,最底层是单元层,中间是服务层,顶部是UI层,而这三层越底层做自动化测试,实现成本越低,越容易看见成效。
单元层自动化测试,就是我们平时所说的单元测试或者白盒测试,一般由开发者自己编写,QA人员接触较少。
服务层自动化测试是api自动化测试也有人叫他是灰盒测试,主要是通过某种工具或者某种框架模拟请求,并对请求的返回做校验。现在互联网公司需求变化快也大,个人非常建议在api自动化上多花时间,因为他不仅仅投入成本相对UI自动化测试来得低,也容易看见成效,执行效率高等等的优点。很早以前曾经写过api自动化的一种方式,详细可见:http://blog.csdn.net/meyoung01/article/details/46008439
最顶端的便是UI层的自动化测试,也就是现在很多人观念中的自动化测试。UI层自动化做的方式很多,根据不同的系统,不同的架构可能会用到不同的框架或者工具。然而UI自动化测试非常依赖于UI界面,如今的互联网公司大多需求变化大而快,迭代频繁,所以很多团队做UI自动化测试经常花了非常高的成本,却迟迟见不到效果,自动化测试人员每天奔命于维护脚本,追赶进度。更有些领导给了不切实际的UI自动化覆盖率。
轻UI,重API。如果你是在一个迭代频繁,需求变化大的团队,那么我建议你把更多的时间花在API自动化测试上,而UI自动化测试个人认为仅仅需要做到主流程的覆盖便可。
最后附上很久之前画的一张Xmind图每一层自动化测试常见的工具或者框架,以及各自的优缺点: