关闭

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

发表于:2012-1-12 11:11

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

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

  上面这段代码中,同样也是两句代码,第一句的最终定位对象用了两个属性去描述,第二句的最终定位对象则用了3个属性去描述。在这里同样要告诉读者们必须记下来的一个规则,那就是描述多个属性时,属性间用逗号隔开,这个逗号必须是英文状态下的。另外,描述性编程的语法是对了,但是如果描述的属性值没有设置对,那QTP是不会执行的,例如,假设将上面这段代码中的第二句代码中的最终对象“WebButton”所描述的属性type改成“error”这个值,其结果读者可以自行去尝试下,看看QTP会不会执行。

  还要让读者记住第二条规则,那就是如果父对象描述了,子对象则一定要描述,不然QTP会报错,来看下面这个示例脚本:

'正确  父对象如果描述了,子对象必须描述

Browser("micClass:=Browser").Page("micClass:=Page")._

WebEdit("name:=wd").Set "QTP自动化测试技术领航"

'错误  父对象描述了,子对象没有描述

Browser("micClass:=Browser").Page("百度一下,你就知道")._

WebButton("百度一下").Click

  图1-184是父对象描述后子对象没有描述导致QTP报错的截图。

图1-184

  但是子对象如果描述了,父对象可以不描述,当然,父对象不描述又不报错的前提是要被添加到对象库中,一起来看下面这个示例脚本:

Browser("百度一下,你就知道").Page("百度一下,你就知道").WebEdit("name:=wd").Set "QTP自动化测试技术领航"

  至此,第一种描述性编程方式的基本内容全部介绍完毕。

  描述性编程大解析(第二种)。

  现在要介绍第二种描述性编程方式,那就是使用Description对象。使用该对象可以返回包含一组Property对象的Properties集合对象。Property对象由属性名和值组成。然后,可以在语句中指定用返回的Properties集合代替对象名(每个Property对象都包含一个属性名和值)。

  要创建Properties集合,需要先创建Properties对象,使用以下语法进行:

Set ObjDescription = Description.Create()。

  创建完毕后,就可以在运行会话期间在Properties对象中添加、编辑、删除或检索属性和属性值了。也可以这么理解,就是将对象的属性及其属性值的描述封装在一个特殊的Description对象中。例如,假设现在需要完成以下这个操作,见下面这个脚本:

Browser("micClass:=Browser").Page("micClass:=Page")._

WebEdit("html tag:= INPUT","name:=wd").Set "QTP自动化测试技术领航"

  完全可以通过Description对象来实现同样的功能,参见下面这段代码:

Set ObjBrowser = Description.Create()

ObjBrowser("micClass").Value = "Browser"

Set ObjPage = Description.Create()

ObjPage("micClass").Value = "Page"

Set ObjWebEdit = Description.Create()

ObjWebEdit("html tag").Value = "INPUT"

ObjWebEdit("name").Value = "wd"

Browser( ObjBrowser ).Page( ObjPage ).WebEdit( ObjWebEdit )._ 

Set "注意此时描述对象的括号内是不需要加引号的,加了引号反而就错了"

'最后需要记住释放对象,可以从最里面一层开始释放直到最外面一层

Set ObjWebEdit = Nothing

Set ObjPage = Nothing

Set ObjBrowser = Nothing

  两种描述性编程方式都已经介绍完了,本人认为第一种更适合应用于普通脚本中,或者这么说,在对象库编程无法完全任务的时候,描述性编程临时加上一句,这样做显得更加直观,代码数量也更加少。但是很明显的缺陷就是无法做到复用。第二种描述性编程的方式,个人认为更适合应用于基于框架的脚本中,从表象上看虽然比前者会多写几句代码,但是这种方式的复用性远远优于前者,所以,具体选取哪一种方式都应按项目的实际情况界定。

本文选自《51Testing软件测试作品系列》之九——《精通QTP——自动化测试技术领航》。

本站经人民邮电出版社和作者的授权,近期将进行部分章节的独家连载,敬请期待!

版权声明:51Testing软件测试网获人民邮电出版社和作者授权独家连载本书部分章节。

任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。

相关阅读:

查看本书介绍>>

查看本书更多试读章节连载>>

查看软件测试作品系列其他书籍>>

33/3<123
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号