深入分析TestComplete名称映射

发表于:2011-10-21 11:21

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:旋次    来源:51Testing软件测试网原创

  摘要:通过实例和分析对TestComplete名称映射的功能步步推进层层展开,将名称映射。

  关键词:TestComplete;NameMapping;Templates;FullName

  一、前言

  TestComplete是AutomatedQA公司开发的一套支持自动测试软件的工具,近年来发展异常迅速,屡获大奖。支持VBScript、DelphiScript、JScript、C#Script等多种脚本语言,支持传统的各类桌面应用程序、WEB应用、单元测试和分布式测试等等领域,最新版本对flash的测试技术发展也非常迅猛,据说可以不用加编译参数重新编译被测程序源码。

  对比同领域的其他自动化测试工具,TestComplete的特点是简洁而强大。在TestComplete的常规应用中,对象识别能力也非常出色,本文重点分析其对象识别的原理和使用方法。

  二、TestComplete名称映射分析

  1、FullName和MappedName

  Windows系统中应用程序、从属于应用程序的窗体、窗体中的控件都是对象,每个对象都有唯一的标识(通常是十六进制的一个值),这些共同构建出一个庞大的对象目录树,根节点就是Sys,可以想象一棵挂满了十六进制数树叶的树,每片树叶还有属性方法事件装饰它,如果录制的代码全是十六进制数做对象名称,所有人都会崩溃的,所以首先要对这些对象起个名字,最简单的法子是使用这个对象的类似caption,index和classname一类的属性来起一个名字,于是TestComplete给每个在内存中的对象起了名字,为了清晰表明各个对象的层次关系,使用了fullname来标识。Fullname看起来大概象这个样子:

  Sys.Process("IEXPLORE").Page("http://xxx:nn/xxx.html").Panel("ext_comp_1017").Panel("ext_gen15").Panel("ext_gen16").Panel("ext_comp_1009").Panel("ext_gen26").Panel("ext_gen28").Panel("ext_comp_1008").Panel("ext_gen75").Panel("ext_gen76").Panel("ext_comp_1073").Panel("ext_gen161").Panel(0).Panel(0).Panel(0).Panel("ext_gen162").Panel("ext_comp_1075").Table(0).Cell(0,7).Table("ext_comp_1048").Cell(0,1).Button("ext_gen195")

  呃…介个…是有点头晕,实在是太长了,不便于书写和阅读,是需要搞个短点的名字才行,于是TestComplete搞了个映射名称MappedName:NameMapping.Sys.IEXPLORE.pageHttp1213289411581Citymanager.panelExtComp1017.panelExtGen15.panelExtGen16.panelExtComp1009.panelExtGen26.panelExtGen28.panelExtComp1008.panelExtGen75.panelExtGen76.panelExtComp1073.panelExtGen161.panelXPanelMl.panelXPanelMr.panelXPanelMc.panelExtGen162.panelExtComp1075.table.cellExtGen193.tableExtComp1048.cellXBtnCenter.buttonExtGen195

  如果看起来还是有些长,可以使用对象引用的法子来截短一些:

  ……………………

  查看全文请点击下载:http://www.51testing.com/html/54/n-247254.html

  想起前面的那个问题,现在来回答一下,映射名称还可以使得修改属性更方便管理,就这样啦?还有没有其他的目的呢?

  3、MappedName的本质

  问:如果整个项目中这种需要修改属性的情况很多,一个个这么修改不是很崩溃?

  答:不可能吧,哪有那么多意外情况

  那就给你看个例子,这是录制的一个web应用:

  录制的内容是点击添加套餐:

  录制前可以看到该映射名称下没有子节点:

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号