51Testing独家连载:(二十三)精通QTP——自动化测试技术领航

发表于:2012-1-11 13:47

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

 作者:余杰 赵旭斌    来源:51Testing软件测试网

1.6.3  封装对象模型—Test Objects VS Run-time Objects

1.6.3.1  解密测试对象与运行时对象

  在QTP里的封装对象共分两个概念,一个是Test Objects(俗称TO)“测试对象”,另一个是Runtime Objects(俗称RO)“运行时对象”。可能大部分读者已经不记得了,在上篇介绍Spy的那个章节中,作者在末尾处已经初步提到过TO与RO,我们来回忆一遍吧,以下是原文:“最后作者要说下,也算是一个预告吧,后者也就是Identification Properties以后会牵涉到对象库编程中的两个重大概念Test Objects(测试对象,俗称TO)和Run-time Objects(运行时对象,俗称RO),在为TO或RO进行编程的时候使用的就是QTP自己封装的这些对象属性。关于前者Native Properties也有其独特的调用方法。”

  原文中提到了Spy中的Native Properties以及Identification Properties,后者就是要在本小节重点讲的封装对象的属性,而前者会在后面介绍对象自身接口的属性时介绍。不过无论是哪一个,都和对象库编程有着紧密的联系,基于对象库的编程就是基于这些属性来完成的。

  继续回到主题,TO和RO这两个概念从字面上来看并不是很好理解,也容易混淆。作者现在就用最简单的描述来介绍测试对象(TO)与运行时对象(RO)的区别:TO就是被添加到对象库中的对象,RO其实就是被测试软件在运行时实际所运行的那个对象。但是,读者要记住,无论是TO还是RO,它们都属于QTP封装的对象,共同使用QTP封装好的一些属性,RO就有点特殊了,它也可以调用自身接口的属性,这个是在下个小节中要讲述的内容,读者在这里只要知道RO也调用QTP封装好的属性就可以了。

  在上篇中已经讲解过QTP鉴别对象模型的机制Object Identification,QTP识别对象通常就是先在对象库里添加测试对象,这些对象全部都存有一些特征属性的值,然后在被测软件运行的时候,QTP会根据脚本里的对象名字,在对象库里找到相对应的测试对象,并根据这些对象的特征属性描述,在被测试软件里搜索并找到相匹配的实际正在运行的对象,最后就可以对这些实际运行的测试对象进行操作了。如果在这个过程中没有找到任何相匹配的对象,那么QTP就会报个“找不到该对象”的错误。最后,作者用最简单的一句话总结一下测试对象(TO)与运行时对象(RO)两者之间的紧密关系:测试对象是为了识别运行时对象而存在的。

1.6.3.2  三兄弟GETRO、GETTO、SETTO各显神通

  在理解了Test Objects与Run-time Objects以后,就要开始学习如何获取到对象的属性了,毕竟自动化测试分成两大块,第一个就是自动操控被测对象。第二个就是获取各种所需要的对象属性,获取属性的作用也可以分成两部分,一个最重要的作用也是最常用的就是验证,验证离不开这些属性,只有这些属性才能证明软件的操作是正确的还是错误的,另一个用途就是获取到一些有利用价值的属性来做后续的事情。还有一个分支,就是给对象库里的对象通过代码自动设置一些属性,以达到特殊的测试目的和要求。所以,在自动化测试过程中,对于“属性”的掌控是很重要的,接下来就详细介绍操控属性的各种方法,待掌握以后再举一些项目中基本的实际使用例子来帮助读者理解各种方法的作用,并证明其实属性的获取是自动化测试过程的桥梁。所以,这些对属性操作的方法绝对是重点中的重点内容。那么就让我们看看对象属性的处理方法有哪些,并逐一进行介绍。

  素材:www.baidu.com百度首页,所需添加对象如图1-157所示。

图1-157

  1.GetTOProperty()

  ● 基本含义:获取对象库中某个对象的某个属性的值。

  ● 公式:ReturnValue =对象.GetTOProperty("封装属性名")

  ● 基础示例:

ValueOfTo = Browser("百度一下,你就知道").Page("百度一下,你就知道").Link("新闻").GetTOProperty("text")

MsgBox ValueOfTo

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

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号