一起养成写作习惯!这是我参与「掘金日新计划 · 5 月更文挑战」的第1天,查看详情
1. 自动化测试基础
1.分层的自动化测试
-
测试金字塔
测试金字塔的概念是由敏捷大师Mike Cohn首次提出,他的基本观点是:我们应该有更多低级别的单元测试,而不仅仅是通过用户界面运行端到端的高层测试
-
传统的自动化测试
基于产品UI层的自动化测试,它是将黑盒功能测试转化为由程序或工具执行的一种自动化测试
-
分层自动化测试
倡导的是从黑盒(UI)单层到黑盒和白盒多层的自动化测试,从全面黑盒自动化测试到对系统的不同层次进行的自动化测试
-
单元自动化测试
-
对软件中的最小可测试单元进行检查和验证
-
到底是让测试人员做单元测试还是让开发人员做单元测试呢?
接口自动化测试
-
模块接口测试: 主要测试模块之间的调用与返回。它主要强调一个可实现完整功能的类、方法或函数的调用测试。适合开发人员去做
-
协议接口测试: 主要测试对网络传输协议的调用,如HTTP/SOAP等,一般应用在前端和后端开发之间,以及不同项目之间。既可以由开发人员去做,也可以由测试人员去做
-
UI自动化测试
-
以实现手工测试用例为主,可降低系统功能回归测试的成本(人力成本和时间成本),UI自动化测试由部分功能测试用例提炼而来,更适合测试人员去做
2.适合自动化测试的项目
- 适合自动化测试的项目应具备以下几点
- 任务测试明确,不会频繁变量
- 每日构建后的测试验证
- 比较频繁的回归测试
- 软件系统界面稳定,变动少
- 需要在多平台上运行的相同测试实例、组合遍历型的测试,以及大量的重复任务
- 软件维护周期长
- 项目进度压力不太大
- 被测软件系统开发较为规范,能够保证系统的可测试性
- 具备大量的自动化测试平台
- 测试人员具备较强的编程能力
3.如何学习UI自动化测试
-
编程语言
-
编程语言是基础,自动化测试的项目离不开扎实的编程基础
-
Selenium/appium API
-
Selenium/appium支持多种编程语言(Java,Python,C#,JavaScript)等。Selenium和appiumAPI提供了操作Web/App的类和方法。我们只需要使用这些方法即可操作Web页面上的元素或App上面的控件
-
单元测试框架
-
如何定义一条测试用例、如何组织和运行测试用例,以及如何统计测试用例的运行结果,都是由单元测试框架实现的。
4.Selenium简介
Selenium的三大版本
- Selenium2.0=Selenium1.0+WebDriver
SeleniumRC与WebDriver的工作方式有着本质的区别
- SeleniumRC是在浏览器中运行JavaScript应用,使用浏览器内置的JavaScript翻译器来翻译和执行Selenium的命令集合
- WebDriver通过原生浏览器支持或者浏览器扩展直接控制浏览器。WebDriver是针对各个浏览器而开发的,取代了嵌入被测Web应用中心的JavaScript。WebDriver还可以利用操作系统的调用,模拟用户输入
Selenium3.0=Selenium2.0-Selenium RC
1)Selenium3.0只支持Java8以上版本
2)Selenium3.0中的Firefox浏览器驱动独立了
3)mac OS操作系统集成了Safari的浏览器驱动
4)只支持IE9.0以上版本
5.appium简介
appium简介
- 当前移动平台上主流的自动化测试工具之一
- appium=application+Selenium
- appium是一个开源的自动化测试工具,支持ios和Android平台上的原生应用、Web应用及混合应用
原生应用
是指那些用ios或者Android SDK开发的应用
Web应用
是指可以使用移动浏览器访问的应用
混合应用
是指用原生代码封装网页视图,原生代码和Web内容交互的应用