目录
1. 什么是自动化
2. 自动化测试金字塔
2.1 单元测试
2.2 接口自动化
2.3 UI自动化
3. 什么是 selenium
4. selenium 工作原理(重点)
1. 什么是自动化
自动化测试指软件测试的自动化,在预设状态下运行应用程序或者系统,预设条件包括正常和异常,最后评估运行结果。将人为驱动的测试行为转化为机器执行的过程。
自动化的优点:
- 可以提高测试效率
- 可以提高测试质量
那么,自动化测试和手工测试哪个更好呢?
不能说哪个好或者哪个不好,只要适合当前业务的测试类型就是一个好的测试方法。
自动化测试能否完全代替手工测试?
不能。
2. 自动化测试金字塔
自动化测试包括UI自动化,接口自动化,单元测试自动化。
按照这个金字塔模型来进行自动化测试规划,可以产生最佳的自贡话测试产出投入比(ROI ),可以用较少的投入获得很好的收益。
越往上越靠近用户、测试方法越简单、问题出现之后定位问题的成本越高。
2.1 单元测试
最大的投入应该在单元测试上,单元测试运行的频率也更加高。
java 的单元测试框架是 Junit。
2.2 接口自动化
接口测试就是 API 测试,相对于 UI 自动化 API 自动化更加容易实现,执行起来也更稳定。
接口自动化的有以下特点:
- 可在产品前期,接口完成后介入
- 用例维护量小
- 适合接口变动较小,界面变动频繁的项目
常见的接口自动化测试工具有, RobotFramework , JMeter , SoapUI , TestNG+HttpClient , Postman 等。
2.3 UI自动化
虽然测试金字塔告诉我们尽量多做 API 层的自动化测试,但是 UI层的自动化测试更加贴近用户的需求和软件系统的实际业务。
UI自动化的特点:
- 用例维护量大
- 页面相关性强,必须后期项目页面开发完成后介入
- UI测试适合界面变动较小的项目
UI自动化测试的好处:
- 降低大型系统的由于变更或者多期开发引起的大量的回归测试的人力投入,这可能是自动化测试最主要的任务,特别是在程序修改比较频繁,效果是非常明显的,自动化测试前期人力投入较多,但后期进入维护期后,可节省大量人力,而手工测试后期需要增加大量人力用于回归测试
- 减少重复测试的时间,实现快速回归测试
- 创建优良可靠的测试过程,减少人为错误
- 可以运行更多更繁琐的测试
- 可以执行一些手工测试困难或不可能进行的测试
- 更好的利用资源
- 测试脚本的重用性
UI层的测试框架 比较多,比如 Windows 客户端测试的 AutoIT , web测试的selenium 以及 TestPlant
eggPlant , Robot framework , QTP 等。
3. 什么是 selenium
selenium 是自动化测试框架,主要针对 web 项目进行 UI 自动化。
selenium 的特点:
- 免费
- 小巧
- 支持多语言:Java、Python、JS、Ruby、C#
- 支持多平台:一套代码可以在 Linux、mac、Windows 上运行
- 支持多种浏览器:Edge、chrome、Firefox
- 有丰富的 API
- 支持分布式测试用例的执行,可以把测试用例分布到不同的测试机器执行,相当于分发机的功能 。
4. selenium 工作原理(重点)
代码:通过编译器写的代码(自动化测试脚本)
浏览器驱动:
什么是驱动:类似于汽车有了驱动才可以跑起来
浏览器:我们下载的浏览器
我们可以看到在运行我们上篇文章的代码后,打印了如下的日志:
表明驱动也连接成功了。