自动化测试工具—“魔爪”的束缚,“思想”的剥离

上一篇 / 下一篇  2012-08-13 15:40:43 / 个人分类:Think

摘自论坛

 

序言:有朋友留言希望能写对RFT写一些基础的实践操作的文章,想想,也是,可是提笔时,却发现写不下去,是因为其违背了我对工具的理解;刚用RFT时,曾很短的一些时间用过录制,后很快弃之,一直在应用它底层的API以及自行编写的组件来构建自动化测试,之后在想学学QTP的时候,看了看其关键字驱动与描述性语言等原理后,直接对其QTP的轻量级框架学习了一下,发现你若是对RFTAPI和框架层次用了一段时间后,QTP的框架还是挺好掌握的。

所以,发现,自动化测试工具,看的浅,其对你而言,是“魔爪”的束缚;看的深,则是“思想“的剥离

一、工具的使用想法

对于那些真的想在自动化测试上做出一番成就的人来说,不是简单的用用工具就行了的,其实很简单的想一想,要是自动化测试只是用用工具,利用工具去搭建一下框架之类的,那么现在自动化测试肯定就已经形成一股很大的规模了,毕竟,能够节约成本的事情谁都想做的。

做自动化不是一件简单的事情,在开始做的时候,想采用哪种工具的时候,就要想到尽量少的把自己的自动化测试开展工具都集成给工具,而是要自己构建一个基础的架构,把工具的自己需要的那一部分给当成插件的形式组合进来。

所以,在掌握工具的基本使用后,就得去研究其底层的东西,因为越上层会越不灵活,拓展越难。想用好一个工具,那就把它的基本精髓给剥离出来,然后构建到你的平台之中,举个例子,就像STAFROBOT Framework一样,他们称为自动化测试框架

,提供的就是一个可以让你随意组建的平台,其余的各种服务(组件)都是可插可分的,是以需求为导向的。

二、工具的学习想法

学习一个工具,当然首先是要学习其基本使用的,但是其基本使用只是一个过渡,为剥离其核心思想的一个铺垫。

RFT(RationalFunction tester)来说吧

学习第一步:使用入手,掌握思想

1、 1、刚开始,你使用RFT,知道其可以进行界面的录制,然后回放,将其都操作了几遍。

2、

2之后,你又学习了其数据池的使用、静态点与动态点的验证、scriptAssure的使用等

等到,将这些都掌握之后,这个工具的使用层面你就OK了,但是学习第一步才开始:

录制此是对象的静态映射的思想;

回放是将抓取的消息重新实现的思想;

数据池在此是一种数据驱动的思想;

静态点与动态点验证是一种控件属性获取和比较的思想;

scriptAssure是一种属性匹配阈值计算及分割线比较的一种思想;

当你掌握这些思想,你会发现,QTP在其使用上的思想其实是通用的,无非在形式上的表达不一样而已,多了关键字驱动思想与描述性编程,不过这个也可以用IBM的开源框架SAFS来实现了。

所以,工具学习第一步,从使用去挖掘工具的设计思想,这样,才能做到举一反三。

学习第二步:研透API,剥离核心

等到上述核心思想进行学习后,开始要接触RFT的底层API了,其API才是其RFT的最核心的东西,RFT,说明白点,其操作界面就是一个IDE环境,你可以完全的脱离这个环境,去用API来构建其测试过程。我将从其常用的分层架构上来明确一下其API的使用

1、对象层AppObject:一般都采用其RFT提供的find(),即,动态搜索的方法进行对象控件的定位;原因为:GUI自动化,最大的难度在于其界面的变动性,因此,静态映射的方法局限性太高,而动态搜索的方法则可以将其查找关键属性定位在其变动性小的属性上,甚至,研发人员能够对每个控件提供唯一的标示ID,这样可以有助于对象的识别以及测试步骤的定位。

2、方法层AppLib:在这一层中,主要是自己构建方法,自动化测试的重点,需要明确:

1)、测试的执行,需要做到无人值守的情况下能跑完一个测试集。

2)、测试的结果报告,能够有统一的测试用例集执行报告,并且每个测试用例有详细的LOG,帮助测试人员快速定位问题。

因此,要做到以上两点,需要利用RFT的一些API

1)你无法做到多线程去监测测试的执行,那么你可以应用其RFT提供给你的RationalTestException类,这是一个所有异常的父类,所以,在每个方法中构建一个try-catch机制,抓到此RationalTestException,则会关闭测试用例,继续进行下一个测试用例执行即可,并将当前测试用例置为fail

2)而对于log信息,则可以利用其RFTLOG api进行构建,但我建议的是,这一部分最好可以自己编写一个log的服务,这样拓展性强。

3、用例层AppCase:则不需要多说了,你可以任意自己构建了,可以做成关键字驱动的形式,也可以做成方法库调用的形式,原理上不变的。

学习第三步:挖掘原理,回归基础

其实,不知道大家现在能够理解我的意思了吗?

学习完工具之后,你就要学会剥离和应用,而我建议,现在应用RFT,只需应用其对象识别的搜索机制即可,对于log的查看、运行的控制等,最好能够自己以组件的形式构建到自己的一个轻量级框架中,轻量级框架集成的组件和服务多了,也就成了重量级框架了。

使用工具越底层、按需求使用,你就能越能脱离工具的“魔爪的束缚”,脱离其限制性,真正做到为你所用,为需求而用。

到了这一步,你要学的就是回归基础,编程基础、数据结构、数据库这些东西都是最底层的东西,只有将底层的东西弄通之后,你才能随心所欲的构建上层,灵活的玩转你的框架,否则,一切都是枉然。

总之,为什么越底层的东西越值钱,因为那才是精华的所在,越底层的东西越容易被大家忽略,其不知,那才是构建整个架构的核心思想,正所谓,大家都会的,你也会,大家都不会的,你会了,那你就值钱了,道理即如此。希望与同道共勉之。

—散步的SUN


TAG:

 

评分:0

我来说两句

日历

« 2024-05-17  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 9597
  • 日志数: 23
  • 建立时间: 2012-04-12
  • 更新时间: 2012-08-20

RSS订阅

Open Toolbar