思步网

查看: 109063|回复: 72
打印 上一主题 下一主题

[TestComplete] TestComplete之Name Mapping

  [复制链接]
刚开始学习使用TC的童鞋通常都会碰到这样一个问题:录制好的脚本,回放时失败,究其原因都是因为某个对象或属性不能识别导致的。一般这样的问题,大多都跟Name Mapping有关。所以要想打好TC基础,掌握Name Mapping是关键的一步。

使用Name Mapping的原因
虽然TC中所使用的对象名称能帮你唯一识别系统中的某个对象,但会有许多不便之处:
1)依赖于对象属性的对象名会经常变化。例如,窗口和控件的识别属性(类名和标题)会随着应用构建的切换而改变。在回放之前,你也许需要用新的对象名替换老的,才能保证回放成功。
2)大多数情况下,对象名称冗长且易读性差。设想你看到一个控件的名称是这样的:Sys.Process('notepad').Window('#32770', 'Font', 1).Window('ComboBox', '', 3).Window('Edit', '', 1),想必你已经开始晕了。
为了解决这类问题,TC提供了Name Mapping技术。通过Name Mapping选项,你可以给对象定制名称。定制的名称作为MappedName属性的值来显示。下图是一个简单的定制过程:
选中需要mapping的对象,右键并单击Map Object..

在Mapped Name栏里填写定制的名称,该对象的默认识别属性是WndClass->IME, WndCaption->Default IME, 你也可以在左边窗口中选择能唯一识别该对象的属性,防止出现有多个相同对象时而识别不出来的情况。

定制完成后,MappedName属性所对应的值如下图所示:


Name Mapping自动化
相比某些工具,TC非常人性化,给用户提供自动Mapped object names的选项(Tools-Options->Engines->Name Mapping->Automatically update name mapping items|Map object names mapping automatically),且该选项默认是选中状态。这样做,就不需要用户自己每次录制时,还要手工映射对象。下面说下哪些操作可以自动映射对象:
1)在录制过程中,会为关联的进程,窗口,控件等自动创建定制名称
2)在keyword test 操作中,如果你正在截取屏幕对象(onscreen objects),也会自动映射。如下图:

3)或者创建检查点的时候,也会自动映射。

访问Mapped Objects
NameMapping对象为所有的映射设置提供了程序接口。Aliase对象仅仅提供对name mapping items的访问。
NameMapping.SysItem.MyProcess.MyWindow.MyControl
Aliases.MyProcess.MyControl


关于Aliases
由于操作系统会包含很多相同属性值的对象,搜索整个对象树是非常耗时的。TC会要求你在映射对象时,先映射它的父亲对象,从Sys对象开始,这样会使脚本运行更快。
然而,如果把父亲对象也映射的话,会使整个访问路径很长,例如:
NameMapping.Sys.Explorer1.IEFrame.Shell_DocObject_View1.Internet_Explorer_Server.PageObj
TC通过别名(Aliases)来解决问题。别名就是映射名称的另外一个名字。别名可以重新组成另外一颗树,可以缩短映射路径。例如:Aliases.Explorer1.PageObj。下图是Sys和Aliases所在的TC界面,通过NameMapping选项进行定位:


关于相同对象的问题
在用TC录制被测对象时,有时会碰到多个相同对象的情况。虽然TC会自动帮你映射识别,但所识别的默认属性并不能完全唯一标识该对象,换句话说,TC自动帮你识别的属性是这些相同对象的共同属性。所以在回放时,TC会搞不清楚具体是哪个对象,回放失败也就不足为奇了。解决这类问题,需要child object来识别,properties在此情况下可以退出舞台。举个简单的例子:

在做安装程序(该程序使用Installshield进行打包)的操作时,Installshield向导启动后,Object Browser对象中会有多个MSIEXEC进程对象,如下图所示:

为了能进行下一步操作,必须找到正确的MSIEXEC。这时就需要通过它的子对象wnMisDialogCloseClass来识别。如下图所示:







上一篇:TC还未支持的第三方控件
下一篇:实现Units之间的通信
[发帖际遇]: Beyond_great 乐于助人,奖励 10 (金) 金币. 幸运榜 / 衰神榜
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖 支持支持 反对反对
回复 论坛版权

使用道具 举报

很好,这些资料值得收藏。
[发帖际遇]: 风清云闲 在网吧通宵,花了 10 (金) 金币. 幸运榜 / 衰神榜
风清云闲 发表于 2013-4-20 14:57
很好,这些资料值得收藏。

也希望各位如果有好的分享,也积极发帖哦。大家共同进步。
众里寻他千百度,蓦然回首在这里!
很有见地的探讨,先收藏着~
还不错哦,如果再能多分享一些就perfect了!
好帖是需要鼓励的~
好帖是需要鼓励的~
有空一起交流一下。
看了LZ的帖子,我只想说一句很好很强大!
还不错哦,如果再能多分享一些就perfect了!
看帖要回,回帖才健康,在踩踩,楼主辛苦了!
还不错哦,如果再能多分享一些就perfect了!
不错 支持一个了
还不错哦,如果再能多分享一些就perfect了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

思步组织思步科技|思步网|火花学堂|思步文库|思步问答|思步英才|天下心
© 2007 思步网 浙ICP备10212573号-4(首次备案号:浙ICP备07035264号)|邮箱:service#step365.com(将#换成@)|服务热线:0571-28827450
在线培训课程|求职招聘|思步文库|官方微信|手机APP|思步问答|微博平台|官方QQ群|交流论坛|软件工程透析|关于我们|申请友链|
点击这里给我发消息     点击这里给我发消息
思步 step365 过程改进 CMMI中文 质量保证 质量管理 流程体系 需求跟踪矩阵 敏捷开发 Scrum 软件度量 项目评审 全员改进 流程管理 人力资源 6sigma 信息安全 ISO27001认证 IT服务管理 ISO20000认证 ISO9000认证 软件测试 SQA 配置管理 IPD 软件工程 PMP认证 PMP试题 PMBOK中文 精益研发 agile 顾问式管理培训
返回顶部