Test Complete的Name Mapping技术
陈能技
2007-8-14
配置管理惹的祸
如果配置管理没有做好对代码的控制的话,可能会出现以下影响自动化测试的情况:程序员在修改程序的时候发现某个控件的命名不大好听,随手就改了个自认为更好的名字,结果是自动化测试脚本很多地方都用到了这个控件的名字,导致大部分脚本无法执行。
这是一个典型的配置管理没有做好的问题,按理在这个阶段程序基本稳定了,而且自动化测试脚本已经写了大部分,功能模块早就该控制起来了,但是由于配置管理“名存实亡”,只是简单的源代码存储管理,没有真正做到“控制”,程序员的对源代码的更改太随意,更改前没有评审,更改后也没及时通知相关人员,所以会出现上面说的问题。
把配置管理做好是解决上面问题的办法,同时,自动化测试方面也有一些技术可以利用起来,从而帮助解决类似问题。
Name Mapping 名称映射技术
在TC(Test Complete)中,你可以给进程、窗体、控件和其它对象起个性化的名字,或者,换句话说,你可以把一个对象映射成另外一个名字。
首先,名称映射技术可以使你的脚本代码可读性更强,比如说,EditorWindow比Sys.Process(“Editor”).Window(“Editor”,”*”,-1)要简短并且更易读。
其次,使脚本和对象名称独立于对象属性,对象属性可能每次build的都不一样。例如,控件名可能会改,就像前面提到的问题一样。名称映射技术可以使你的脚本代码在这种情况下免于更改。
名称映射技术原理
当把一个对象的名称映射成一个个性化的名称的同时,会把用于辨别对象的属性和特定的值指定。例如,你可以把Process(“notepad”)映射成notepad,它的Name属性是notepad,而UserName是Chennengji。这些属性和他们的值都存储在相应的名称映射项中。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
分享到:
相关推荐
testcomplete752 7.5 版本的主要修改和增强如下: TestComplete 7.50 is a significant release with major new features: * New Flex Plugin for greatly improved Adobe Flex object recognition. (Flex ...
PassMark BurnInTest V5.3 ...All Rights Reserved ... Overview ======== Passmark's BurnInTest is a software tool that ...- Corrections to the mapping of paths with ".\". Release 5.3 build 1011 rev 2 WIN32 ...
允许合并两个名称映射(NameMapping.tcNM文件)的工具,从而扩展了TestComplete功能。
pre-assessment and post-assessment, and automated scoring and feedback Complete objective-by-objective review section, plus a handy exam-mapping grid Evaluation version of Windows Server 2008 15 ...
Keymapping and custom hotkeys How to customize 键映射s and menu hotkeys Column Markers The benefit of a column maker is that it can help you to format your text/code, or in some cases to make it ...
* fixed: "eac3to -test" displayed an outdated Nero download link * fixed: specifying a specific playlist still used default playlist's chapters v3.08 * fixed: reading physical disc speed was abysmal ...
- converted the complete hdimage stuff to the new 'hdimage' plugin - new hdimage method get_capabilities() that can return special flags - vmware3, vmware4 and vvfat classes now return HDIMAGE_HAS_...
PEP 3155: Qualified name for classes and functions PEP 412: Key-Sharing Dictionary PEP 362: Function Signature Object PEP 421: Adding sys.implementation SimpleNamespace Using importlib as the ...
National_Semiconductor的一款网络芯片的技术手册。1.0 Pin Descriptions m 9 1.1 Serial Management Interface 9 1.2 MAC Data Interface .9 1.3 Clock Interface 11 1. 4 LED Interface 1.5 Reset and Power down ...
This allows a process to access any portion of the physical memory by mapping it into the applications window. When used in combination with Intel’s Physical Addressing Extensions (PAE) on Windows ...