5.1. 概述

推荐网站:https://python-selenium-zh.readthedocs.io/zh_CN/latest/

5.1.1. 目的

  • 做你不想做的事,一些重复性的工作很枯燥(比如回归验证,造数据等),这些事情是大家都不愿意做的,大家都喜欢做一些有创造力,有挑战的事情,但这样枯燥的工作总要有人做的,所以把它交给机器最合适不过了,机器不会累,也不会报怨。

  • 提高工作效率,有些工作由人来完成的时候,效率会很低,但由机器来做时,效率是人的几倍甚至几十倍。

5.1.2. 有没有必要做

有没有必要做,我觉得应该取决于使用自动化与人工哪个更有效率。 比方说一个项目需要经常变,维护成本很高,那么效率就不如人工 再比方说一个项目实现自动化难度很大,但人工验证也不是非常复杂,那么也没必要做 自动化应该是一个辅助测试同学快速回归,减轻人工的工具,附属技能,不做没关系,但做了会提高测试效率,对项目质量有帮助

5.1.3. 使用什么工具

目前市面上的自动化测试框架非常多,下面几款是非常常见的webUI自动化测试框架或工具

1)UFT UTF(Unified Functional Testing),由QTP(Quick Test Professional software)与ST(Service Test)合并而来,由HP公司开发,是一个企业级的自动化测试工具,提供了强大的录制回访功能,同事也兼容了对象识别模块与图形识别模块的两种识别方式,支持B/S和C/S两种架构,所使用的预约主要是vbscript脚本语言。

2)Robot Framework Robot Framewrok(RF)是一款基于Python语言编写的自动化测试框架,具备良好的拓展性,支持关键字驱动,可以同时测试 多个类型的客户端或者接口,可进行分布式测试。

3)Watir Watir(Web Applincation Testing in Ruby)是一款基于web开发的自动化功能测试工具。Watir是一个Ruby语言库,使用Ruby语言进行脚本开发

4)Selenium Selenium是一个用于Web应用程序测试的工具框架,支持多平台、多浏览器、多语言去实现自动化测试。目前是web自动化领域应用较为广泛。

../_images/selenium_qtp_duibi.png

除此之外,还有很多自动化工具,可以看一下这个地址:https://github.com/atinfo/awesome-test-automation

../_images/python_automation.png

虽然selenium webdriver目前还是主流,但是因为是开源的,最近几年的开发并不是很给力,不过还是比其它工具更好用一点儿。

5.1.4. 为什么要学习

  • 对公司来说:提高回归效率,提高生产力,提高测试逼格

  • 对个人来说:多赚钱!多赚钱!!多赚钱!!!

5.1.5. 怎么学习

学习是有技巧的和方法的,初学者如果一上来就去读官方的手册或API文档(有经验的推荐直接看官方文档),必然会有挫败感,那应该怎么学呢? 找本入门的书籍,或者好的博客,一步一步的跟着学,这个是非常不错的,但还是会有问题,比如有些人会觉得,为什么我把一本书看完了,也跟着做了,但是后来用的时候还是做不来? 我觉得是出发点的问题,如果是为了做项目去学习,你所学的都是为了解决一些问题,那么会进步比较快,但如果就是为了学而学,学了又不用,那么很快就会忘,用的时候又要重新学

那怎么学WEB自动化呢?

  • 先了解自己的需求,自己要做什么

  • 理解WEB自动化的原理

  • 做几个简单的例子感觉感觉

  • 过一下所使用工作或库的API(心里有个概念)

  • 做项目!!! 一定要用,要不然启不是白学了

  • 不断解决遇到的问题,不断优化,研究一些细节

  • 思考。想法和思路非常重要