自动化测试 - RFT系列教程4: RFT是如何识别控件的(二) 对象库与脚本

上一节里面我们介绍了如何使用工具抓取控件(对象),现在大家一定很好奇,那些抓下来的对象最终以什么样的形式保存了下来呢?这一节我们就将接触脚本和对象库是以什么样的形式保存在你的硬盘里面的。


回到上一节的例子,我们已经新建了一个RFT的项目并在其中新建了一个空的脚本(名字叫RFT_03_001),然后在脚本里面抓取的google主页上面的Google Search按钮,并使用逻辑的对象名称button_googleSearchsubmit,下面我们就逐步在硬盘上找到他们。

 

RFT项目本质上就是一个Java的项目

我们现在所在的是名叫Functional Test的Perspective,我们可以通过Window->Open Perspective->Java(或者Other里面查找)切换到Java Perspective,在这个perspective下面,你可以清楚地看到一个RFT的项目其实就是一个Java项目(如下图RFT_4_001),只不过是多了一些文件和文件夹。

RFT_4_0_001 

从上图我们看到这样几个文件夹Peferenced Libraries、(default package)、resources、templates和一个文件RFT_03_001.testsuite

  1. Peferenced Libraries:就是该项目所引用的Lib,包括RFT自带的jar也包括我们自己加的jar
  2. (default package):这是一个默认的package,如果没有指定Test Folder,所有的测试脚本都会创建在这里
  3. resources:这是本节最重要的一个package,它里面一般不存放脚本,但是存放更加重要的对象库,下面会详细介绍
  4. templates:这是存放项目中template文件的地方,在后面讲到template使用的时候会再次接触他
  5. 文件RFT_03_001.testsuite:主要用于配合Rational其他工具使用,如ClearCase

首先是脚本文件

脚本文件本身就是一个java类(RFT_03_001.java), 同时它有继承一个叫RFT_03_001Helper的类, 在RFT里面任何一个脚本(类)都继承一个**Helper类

 

在上面的代码里面, testMain是脚本执行的入口, 任何脚本的执行都是从它的testMain方法开始的。

 

 

**Helper类里面主要有两种函数,一个是构造函数,这里给该脚本设置了名字,另两个是返回对应控件的对象(TestObject) 方法,一般一个对象对应两个方法(通过重载可以接收不同的参数,后面我们会再提到他们的一些特殊应用),这样继承该Helper类的脚本就可以使用这样的方法来操作被测控件了,如脚本testMain方法里面的button_googleSearchsubmit().click();就表示点击该按钮。在返回TestObject的方法里面,有一行代码是getMappedTestObject("button_googleSearchsubmit"),这个意思就是在TestObject Map(对象库)里面寻找名字叫做button_googleSearchsubmit的TestObject(对象)。

 

现在我们就来看看储存对象库的文件: RFT_03_001.rftdef和RFT_03_001.rftxmap。

这两个文件本质都是XML文件,RFT_03_001.rftdef则是定义了被测对象的逻辑名称,如button_googleSearchsubmit,而RFT_03_001.rftxmap则储存了被测对象的特征或者属性值,如title,class,type等,然后他们通过id来保证两个文件的一致性。

RFT_03_001.rftdef的内容如下,这里面只有一个对象,他的逻辑名字是button_googleSearchsubmit,它对应的id则是4.1Ec2yhmgqeP1:lWG7b:MJAx5jS:8WW(这个id是RFT自动生成的)

 

下面是RFT_03_001.rftxmap的内容,这里一共记录了五个对象的特征和属性,包括我们在对象库里面看到的按钮及其它的父控件(parent TestObject),如IE,Web页面,Form,Table等,在这里面你可以找到我们在RFT_03_001.rftdef里面有逻辑名称的按钮的id,这样所有的信息都联系了起来。

 

  

 

结论

这样每当我们抓取一个控件并给他赋予逻辑名称的时候,RFT都会在RFT_03_001.rftxmap和RFT_03_001.rftdef里面加入相应的特征信息,并且在Helper类里面添加可以返回该对象(TestObject)的两个方法,供脚本调用。 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值