第 1 章 自动化测试基础 - Selenium3 自动化测试

Posted marlonkang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第 1 章 自动化测试基础 - Selenium3 自动化测试相关的知识,希望对你有一定的参考价值。

1.1 分层的自动化测试

测试金字塔的概念,基本观点是:我们应该有更多低级别的单元测试,而不仅仅是通过用户界面运行端到端的高层测试

技术图片

在测试金字塔的基础上提出分层自动化测试的概念。在自动化测试之前加了一个「分层」的修饰,用于区别「传统的」自动化测试。
所谓传统的自动化测试我们可以理解为基于产品 UI 层的自动化测试,它是将黑盒功能测试转化为由程序或工具执行的一种自动化测试。

1.单元自动化测试
单元自动化测试是指对软件中的最小可测试单元进行检查和验证。
最好让开发人员去写和执行单元测试。

2.接口自动化测试
Web 应用的接口自动化测试大体分为两类:模块接口测试和协议接口测试。
(1)模块接口测试,主要测试程序模块之间的调用与返回。它主要强调对一个可实现完整功能的类、方法或函数的调用的测试。
(2)协议接口测试,主要测试对网络传输协议的调用,如 HTTP/SOAP 等,一般应用在前端和后端开发之间,以及不同项目之间。
模块接口测试更适合开发人员去做;协议接口测试既可以由开发人员去做,也可以由测试人员去做。

3.UI 自动化测试

UI 自动化测试以实现手工测试用例为主,可降低系统功能回归测试的成本(人力成本和时间成本)。UI 自动化测试由部分功能测试用例提炼而来,更适合测试人员去做。
Google 把产品测试类型划分为:小测试、中测试和大测试,采用 70%(小)、20%(中)和 10%(大)的比例,分别对应测试金字塔中的 Unit 层、Service 层和 UI 层。

1.2 适合自动化测试的项目

参考以下几点:
(1)任务测试明确,不会频繁变动。
(2)比较频繁的回归测试。
(3)软件系统界面稳定,变动少。
(4)需要在多平台上运行的相同测试案例、组合遍历型的测试,以及大量的重复任务。
(5)项目进度压力不太大。
(6)软件维护周期长。
(7)被测软件系统开发较为规范,能够保证系统的可测试性。

根据我们的经验,一般来说,满足以下 3 个条件就可以对项目开展自动化测试。
(1)软件需求变动不频繁。
(2)项目周期较长。
(3)自动化测试脚本可重复使用。

1.3 如何学习 UI 自动化测试

要想学好基于 Selenium/appium 的 UI 自动化测试,应从以下 3 个方面入手。

1.编程语言
Selenium/appium 支持多种编程语言(Java、Python、等),更准确地说,Selenium/appium 针对以上两种编程语言都开发了相应的 Selenium/appium 测试库。
除元素是否好定位外,UI 自动化能否做好,编程语言是基础。

2.Selenium/appium API
Selenium(WebDriver)和 appium API 提供了操作 Web/App 的类和方法。
我们只需使用这些方法即可操作 Web 页面上的元素或 App 上面的控件。

3.单元测试框架
如何定义一条测试用例、如何组织和运行测试用例,以及如何统计测试用例的运行结果(总测试用例数、成功测试用例数、失败测试用例数等),都是由单元测试框架实现的。
单元测试框架是编写自动化测试用例的基础。

1.4 Selenium 简介

Selenium 不是由单独一个工具构成的,而是由一些插件和类库组成的,这些插件和类库有其各自的特点和应用场景。

Selenium 3.0
(1)Selenium 3.0 只支持 Java 8 以上版本。
(2)Selenium 3.0 中的 Firefox 浏览器驱动独立了。Selenium 2.0 测试库默认是集成 Firefox 浏览器驱动的,在 Selenium 3.0 中,Firefox 浏览器和 Chrome 浏览器一样,在使用前需要下载和设置浏览器驱动。
(3)mac OS 操作系统集成了 Safari 的浏览器驱动,该驱动默认在/usr/bin/safaridriver 目录下。
(5)只支持 IE 9.0 以上版本。

Selenium IDE
Selenium IDE 同样是 Selenium 的家族成员。Selenium IDE 有两个版本,旧版的 Selenium IDE 是基于 Firefox 浏览器扩展的。
旧版的 Selenium IDE 不支持 Firefox 新版本支持的 API,因此 Selenium 团队重新开发了新版的 Selenium IDE,可以同时支持 Chrome、Firefox 以及其他浏览器。
项目地址:https://github.com/SeleniumHQ/selenium-ide

1.5 appium 简介

appium 是当前移动平台上主流的自动化测试工具之一。
Selenium 是当前主流的 Web UI 自动化测试工具。appium 与 Selenium 之间是有继承关系的。appium 的寓意是:移动端的 Selenium 自动化测试工具。
appium 是一个开源自动化测试工具,支持 iosandroid 平台上的原生应用、Web 应用以及混合应用。

原生应用:是指那些用 iOS 或者 Android SDK 开发的应用(App)。
Web 应用:是指可以使用移动浏览器(如 iOS 上的 Safari 和 Android 上的 Chrome)访问的应用。
混合应用:是指用原生代码封装网页视图,原生代码和 Web 内容交互的应用。比如,微信小程序,可以帮助开发者使用网页技术开发应用,然后用原生代码封装。
更重要的是,appium 是一个跨平台的测试工具,它允许测试人员在不同的平台(iOS、Android)使用同一套 API 编写自动化测试脚本,这大大增加了 iOS 和 Android 测试套件之间代码的复用性。

(1)appium 与 Selenium
appium 类库封装了标准 Selenium 客户端类库,为用户提供常见的 JSON 格式的 Selenium 命令,以及额外的移动设备控制相关的命令,如多点触控手势和屏幕方向等操作。
appium 服务器定义了官方协议的扩展,为 appium 用户提供方便的接口来执行各种设备动作,例如,在测试过程中安装/卸载 App 等。

 

以上是关于第 1 章 自动化测试基础 - Selenium3 自动化测试的主要内容,如果未能解决你的问题,请参考以下文章

第 5 章 自动化测试模型 - Selenium3 自动化测试

第 8 章 Page Object - Selenium3 自动化测试

第 4 章 WebDriver API - 4.2 控制浏览器 - Selenium3 自动化测试

Selenium3 Python3 Web自动化测试从基础到项目实战之二浏览器的不同设置

python+selenium自动化软件测试(第14章):基础实战

python+selenium自动化软件测试(第16章):基础实战