谈自动化测试框架思想与构建

序言:也许到如今你们对所谓的“自动化测试框架”仍然以为是一种神秘的东西,仍然以为其与各位很远;其实否则,“自动化测试框架”从理念来讲,并不复杂,但其之因此神秘,是由于其运用起来非常复杂,每一个公司,每一个部门其产品线,其运做流程都是不一样的,因此就致使了在想运用“自动化测试框架”去完成自动化测试时产生了不少不定因素,致使了不少自动化测试项目的失败,让人对“自动化测试框架”开始敬而远之。数据库

而自动化测试发展也有一段时间了,为何到如今虽见其火热,但难见其规模,关键是你们对其的定位,不少公司以及不少人都知道作好自动化测试不简简单单的靠一个工具,而更须要一个框架,但其老是对“自动化测试框架”缺少清晰的定位,很容易将其定位成了一个固定的框架,其实我的理解否则,自动化测试框架不是一个模式,而是一系列思想的集合,是将各类自动化测试框架思想集合应用去搭建成的一个分层组织。windows

1、简述自动化测试框架架构

也许不少人印象里的自动化测试框架就是一个可以进行自动化测试的程序似的。其实这不全面,真正的自动化测试框架能够不是一个程序,它仅仅是一种思想和方法的集合,说白了,就是一个架构,你们应该都知道操做系统其实也是一个架构吧,你能够把其理解成一个基础的自动化测试框架为一个简单的操做系统,它定义了几层架构,定义了各层互相通讯的方式。经过这个架构咱们才能在上面进行拓展咱们的测试对象(核心体)、测试库(连接库)、测试用例集(各个windows进程)、测试用例(线程),而其之间的经过参数的传递进行通讯(即至关于系统中的消息传递)。框架

2、自动化测试框架思想模块化

接触过自动化测试的,必定不会对如下几种“自动化测试框架思想”陌生吧。函数

  • 模块化思想
  • 库思想
  • 数据驱动思想
  • 关键字驱动思想

不少人都将以上定义为“框架”,而我却以为它们都只是表明了一种自动化测试的思想,不能以纯粹的框架定义。工具

首先,咱们来看看自动化测试的一个发展,就能更加明白这些思想的真谛了。测试

a)第一代自动化测试,即自动化测试思想刚开始诞生时,依靠的是传统的“录制-回放”技术,这种技术与如今的工具的“录制-回放”思想不同,其其实就是一个“模拟”的过程,即模拟你对PC的操做而造成的,其基于你对键盘的输入与对鼠标的操做,原理与按键精灵等相似,这种机制对环境的依赖性太强,对变化性太过于敏感,所以不可能发展成一种规模。ui

b)第二代自动化测试,即脚本化的自动化测试,利用脚本进行结构化的自动化测试,此能够应用于CLI与API的自动化测试,在其就开始集成了模块化与库思想。操作系统

c)第三代自动化测试,开始产生了各类自动化测试思想,包括数据驱动与关键字驱动思想,其伴随着对象化思想的产生,并且也造就了如今一系列的自动化测试软件,其实其中都集成了这些思想,从这时候开始,自动化就开始实现了必定的规模,开始运用在各个行业,而且发展趋势愈来愈快。

如今将一一根据本身的我的理解来介绍这些“自动化测试框架思想”:

一、所谓模块化思想,就是将一个测试用例中的几个不一样的测试点拆分而且将其单个点的测试步骤进行了封装,造成了一个模块。

例如:一个测试用例要对一个登陆程序进行测试,其中包括:用户名输入、密码输入、以及肯定登陆;

那么就能够将用户名输入、密码输入、肯定登陆、取消登陆四个操做分别封装在四个不一样的模块中。测试时,只需调用其模块便可。这样的话,当一个模块有变化,你只需单独维护那个模块便可,也能够根据模块的不一样组合成不一样的测试用例。

二、所谓测试库思想,就是模块化思想的升华,其为应用程序的测试创造了库文件(能够是APIs、DLLs等),这些库文件为一系列函数的集合。其与模块化思想不一样的是,其拓展了接口思想,便可以经过接口去传递参数,而不是一个封死的模块,能够说是一个多了一个“门”的交互型模块。

例如:仍是以上那个测试用例,只是将用户名输入、密码输入、肯定登陆、取消登陆封装成一个库,这个库含有一个函数Login,这个函数Login接收两个参数“用户名、密码”,对输入不一样的用户名和密码能够进行不一样的测试用例。也能够另一个函数Cancle。

三、所谓数据驱动思想,众说纷纭,不少人都觉仅仅依靠用EXCLE表进行不一样数据的读取仅是一个高级的参数化,其实怎么理解并不重要,关键是其思想可以好的应用到你的框架中。而个人理解就是变量不变,数据驱动结果,不一样的数据致使了不一样的结果的产生。而对于数据的导入,能够经过不少方式,例如:EXCLE表、XML(用在WEB中)、数据库(DB)、CSV文件、TXT等均可以。

四、所谓关键字思想,这个思想,我曾经一直思考,它与面向对象的关系,与交互模块化思想的区别。后来我的理解,其实关键字驱动就是一种面向对象的思想,例如:QTP、RFT中,对象能够为一个数据或者一个关键字,对对象的抓取,能够将其测试对象封装为一个关键字(便可以将gui元素封装成了一个个关键字),这样能够对其关键对象进行各类操做了,不一样的对象能够驱动不一样的测试流向与结果。

简单的应用的方式能够用一个EXCEL表,里面包括“对象类型”“对象名称”“对象操做名称”“判断方式”“预期结果”。这样的话,能够经过导入不一样的对象类型和名称、不一样的对象操做来构建成了一个测试用例表了。

以上只是对这些思想的我的理解,作好自动化测试,不是说你掌握了一个框架,而是要掌握其自动化的思想,而后根据这些思想,结合你不一样的测试环境和流程来构建你本身的自动化测试框架。

3、构建自动化测试框架的策略

一、永远记住,你的“自动化测试框架”是给测试人员用的,若是你真的想把自动化测试作成一个规模,那么你须要将测试工程师当作你的用户,你不能期望他们有耐心的去编写测试脚本或者期望他们可以像你同样对这些思想有良好的掌握。你要将他们当成什么都不懂的用户,所以你的框架必须是“一切简单化”的化身,简单的操做、简单的维护、简单的拓展。

二、作一个自动化测试框架主要是从分层上去考虑,而不是简简单单的应用一种思想,它是各类思想的集合体。

例如,作GUI自动化测试,简单的通常就将其分为三层,其框架以下图所示:

 GUI自动化测试

而其中,能够贯穿着自动化测试的各类思想,例如:对象层中有关键字的思想、能够将对象库标示在Excel表中进行管理,或者应用动态搜索的方式传递对象识别参数。tasks层中能够封装各类方法,造成一个大型的方法库,而每一个方法中能够应用上数据驱动的思想。

三、真正的自动化测试框架是与流程上结合的,而不简简单单的靠技术实现,技术其实不是很复杂,关键就在于对其架构和流程的深入把握,而这须要很长的一段时间,因此不要期望一口气能吃成胖子,只能一步一步按需求来,需求指导思想的应用。

4、自动化测试框架的发展趋势

我的认为,自动化测试从初始诞生到至今,已经通过了一段漫长的日子,而其仍处于上升期,特别是如今软件大爆炸、敏捷模式、云端的开始热门,测试难度和质量保证的难度开始愈来愈大,自动化测试的比重也会愈来愈大,而单存的自动化测试是没法实现规模化的,所以,自动化测试框架热门化的趋势化的必然的,那是,在各类框架思想的集合中,各类框架将散发出各自的璀璨,来帮助咱们快速的完成各类测试。

以上仅仅是至今,我的对“自动化测试框架”的理解,也许在之后的日子,由于认识的加深而会有不一样的火花蹦出,但至少以为如今的框架对本身的项目可以进行应用,也许某一天,需求饱和时,那么,新一轮的远征探索就又要开始……

但愿,咱们你们在自动化测试的征程上能越走越远,也但愿自动化测试能真正成为测试流程中“不可缺乏”的一部分。共勉之。

相关文章
相关标签/搜索