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

 

 

            

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

猜你喜欢

转载自blog.csdn.net/gdhjgfr/article/details/86616601
今日推荐