Test Complete的Name Mapping技术

Test CompleteName Mapping技术

 

陈能技

2007-8-14

 

 

配置管理惹的祸

如果配置管理没有做好对代码的控制的话,可能会出现以下影响自动化测试的情况:程序员在修改程序的时候发现某个控件的命名不大好听,随手就改了个自认为更好的名字,结果是自动化测试脚本很多地方都用到了这个控件的名字,导致大部分脚本无法执行。

 

这是一个典型的配置管理没有做好的问题,按理在这个阶段程序基本稳定了,而且自动化测试脚本已经写了大部分,功能模块早就该控制起来了,但是由于配置管理“名存实亡”,只是简单的源代码存储管理,没有真正做到“控制”,程序员的对源代码的更改太随意,更改前没有评审,更改后也没及时通知相关人员,所以会出现上面说的问题。

 

把配置管理做好是解决上面问题的办法,同时,自动化测试方面也有一些技术可以利用起来,从而帮助解决类似问题。

 

Name Mapping 名称映射技术

TC(Test Complete)中,你可以给进程、窗体、控件和其它对象起个性化的名字,或者,换句话说,你可以把一个对象映射成另外一个名字。

 

首先,名称映射技术可以使你的脚本代码可读性更强,比如说,EditorWindowSys.Process(“Editor”).Window(“Editor”,”*”,-1)要简短并且更易读。

 

其次,使脚本和对象名称独立于对象属性,对象属性可能每次build的都不一样。例如,控件名可能会改,就像前面提到的问题一样。名称映射技术可以使你的脚本代码在这种情况下免于更改。

 

名称映射技术原理

当把一个对象的名称映射成一个个性化的名称的同时,会把用于辨别对象的属性和特定的值指定。例如,你可以把Process(“notepad”)映射成notepad,它的Name属性是notepad,UserNameChennengji。这些属性和他们的值都存储在相应的名称映射项中。TC就可以在记录和回放时使用这些属性来识别所映射的对象。

 

TC,通过NameMapping对象或Aliases对象来访问映射名称。

 

TC在脚本执行过程中碰到个性化的名称时,会访问Name Mapping引擎来搜索对象树,看是否存在与指定属性一致的对象,一旦找到,返回给TC的脚本引擎。

 

TC录制脚本时,TC会检查对象是否被名称映射了,如果是,则看是否能找到合适的名称映射项,TC把映射的名称或别名(而不是普通的对象名称)记录到脚本中。

 

名称映射和别名(Aliases

由于操作系统会包含很多相同属性值的对象,搜索整个对象树是一个很费时的过程。TC会要求你在映射对象时先映射它的父亲对象,从Sys对象开始,这样会使脚本运行更快。

 

然而,如果把父亲对象也映射的话,会使访问路径很长,例如:

NameMapping.Sys.Explorer1.IEFrame.Shell_DocObject_View1.Internet_Explorer_Server.PageObj

 

TC通过别名(Aliases)来解决这个问题。别名就是映射名称的另外一个名字。别名可以重新组织成另外一棵树,可以缩短映射路径,例如:Aliases.Explorer1.PageObj

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值