自动化测试 - RFT系列教程5: RFT是如何识别控件的(三) TestObject的种类:Mapped和Bound

 什么是TestObject?TestObject可以被认为是一个连接点,它把RFT脚本和被测控件很好的连接起来,让用户看起来操作TestObject就好像操作被测控件一样。

 

RFT里面主要有两类TestObject: 一个是Mapped,另一个是Bound(也被称作Found, Registered)


Mapped TestObject

  • Mapped TestObject一般都是通过一些必要的属性信息来定位一个真实的被测控件,我们之前接触到的TestObject都是Mapped
  • 一般这些属性信息都存储在TestObject Map里面,各个TestObject是以树状结构保存
  • 比如一行脚本button().click(),RFT在执行的时候首先先从TestObject Map里面读取button的关键属性信息,然后通过这些信息寻找匹配的控件,当寻找到匹配控件并且唯一时生成相应的Bound TestObject,然后由Bound TestObject执行click操作,最后再释放掉Bound TestObject
  • 从代码层面,button().click()相当于如下代码

 

Bound TestObject

  • 一切不是通过TestObject Map里面的属性查找到的TestObject都是Bound TestObject
  • Bound TestObject才是真正联系RFT脚本和被测控件的连接点,我个人认为它应该相当于各类Proxy(后面我们谈到RFT的扩展会详细讲解Proxy)
  • 可以直接返回Bound TestObject的方法如下: getChildren(), getMappableChildren(), getOwned(), getParent(), getMappableParent(), getOwner(), find(), getTopParent() 
  • Bound TestObject和Mapped最大区别就是Mapped TestObject会自动unregister,但是Bound TestObject必须要手动unregister,这就像我们在写数据库相关代码的时候要时刻记的关闭connection一样,一般都会把关闭connection写在finally里面,比如:

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值