分层的自动化测试
所谓传统的自动化测试是基于产品UI层的自动化测试,它是将黑盒功能测试转化为由程序或工具执行的一种自动化测试。
分层自动化测试倡导的是从黑盒(UI)单层到黑盒和白盒多层的自动化测试,即从全面黑盒自动化测试到对系统的不同层次进行的自动化测试。
①:单元自动化测试
单元自动化测试是指对软件中的最小可测试单元进行检查和验证。(由开发人员去做更合适,熟悉代码)
②:接口自动化测试
Web应用的接口自动化测试大体分为两类:模块接口测试和协议接口测试。
(1) 模块接口测试:主要测试程序模块之间的调用与返回。它主要强调对一个可实现完整功能的类,方法或函数的调用的测试。
(2) 协议接口测试:主要测试对网络传输协议的调用。如HTTP/SOAP等,一般应用在前端和后端开发之间,以及不同项目之间。
模块接口测试更适合开发人员去做,协议接口测试既可以由开发人员做,也可以由测试人员去做。
③:UI自动化测试
UI自动化测试以实现手工测试用例为主,可降低系统功能回归测试的成本(人力成本和时间成本),UI自动化测试由部分功能测试用例提炼而来,更适合测试。
适合自动化测试的项目
一般来说,满足以下三个条件就可以对项目开展自动化测试:
(1) 软件需求变动不频繁
(2)项目周期较长
(3)自动化测试脚本可重复调用
Selenium简介
selenium经历了三个大的版本,Selenium1.0,Selenium2.0,Selenium3.0,selenium不是由氮素一个工具构成的,而是由一些插件和类库组成的。
Selenium 1.0:
(1)Selenium IDE:是嵌入在Firefix浏览器中的一个插件,可实现简单的浏览器操作的录制与回放功能
(2)Selenium Gird:是一个自动化测试辅助工具,可以很方便的实现在多台机器上或异构环境中运行测试用例
(3)Selenium RC:是Selenium家族的核心部分,支持多种不同语言编写的自动化测试脚本,把Selenium RC的服务器作为代理服务器去访问应用,即可以达到测试的目的;
其由Client Libraries 和Selenium Server两部分组成,前者主要用于编写测试脚本,负责控制Selenium Server的库,后者负责控制浏览器行为;
Selenium Server主要分为三部分:Selenium Core,Launcher,Http Proxy。Selenium Core就是由一堆JavaScript函数的集合。通过这些js函数,我们可以用程序对浏览器进行操作。Launcher用于启动浏览器,把Selenium Core加载到浏览器页面当中,同时,把浏览器的代理设置为Http Proxy。
Selenium 2.0:
Selenium 2.0 = Selenium 1.0 + WebDriver
在2.0中,主推的就是WebDriver,可以将其看成Selenium RC的替代品,但是2.0并没有彻底抛弃Selenium RC。
Selenium RC 和WebDriver有着本质的区别:
Selenium RC 是在浏览器中运行JavaScript应用,使用浏览器内置的JavaScript翻译器来翻译和执行selenese的(selenese是selenium命令集合)
WebDriver通过原生浏览器支持或者浏览器宽展来直接控制浏览器,其是针对各个浏览器而开发的,取代了嵌入被测Web应用中的JavaScript,其还可以利用操作系统级的调用,模拟用户输入。
Selenium 3.0:
selenium 3.0 = Selenium 2.0 - Selenium RC
其只支持Java8以上版本
其中的Firefox浏览器驱动独立了,2.0测试库默认是继承Firefox浏览器驱动的,在3.0中,Ffirefox浏览器和Chrome浏览器一样,在使用前需要下载和设置浏览器驱动。
mac OS操作系统集成了Safari的浏览器驱动,该驱动默认在/usr/bin/safaridriver目录下
只支持IE 9.0以上版本
appium简介
appium是当前移动平台上主流的自动化测试工具之一
appium是由application和selenium合成的。
appium类封装了标准Selenium客户端类库,为用户提供常见的json格式的Selenium命令,以及额外的移动设备控制相关的命令。appium客户端API实现了Mobile Json Wire Protocol和 W3C WebDriver spec的元素。