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

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

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

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

分享:

  我们可以看到,Browser和Page是没有系统默认属性的。因为这两个控件比较特殊,一般情况下,都会使用Class Name或者creationtime这两个属性来描述该对象,它们在O\I里可是没有的。Class Name可以从Spy里看到,说到Class Name我们也不得不回顾一下之前讲过的一个挺重要的知识点,就是Class Name必须要写成micClass。读者再返回看看在上一个小节中,描述Browser和Page的时候是不是使用了micClass?

  接下来讲解的是Spy,Spy在描述性编程中也是经常被调用的,因为O\I用于定位所要描述对象的属性,而Spy就是定位描述属性的属性值,它们绝对是默契的搭档!描述性编程也就是因为有了它们,才可以应用起来,如来看看下面这张Spy图,如图1-189所示。

图1-189

  本小节的内容相对比较简单,不过简单不代表实用性就不高,恰好是相反的!最后,告诉读者描述性编程可描述的属性都是封装接口属性,不是自身接口的属性,务必切记!

1.7.4  描述性编程的妙用以及与对象库编程的混搭

  本人是不支持使用纯描述性编程的,DP的使用应审时度势且以实用的角度出发。前面也讲到过了,一般情况下,描述性编程应用在对象库编程无法完全满足需求的时候,以替补的身份去出色完成少额的任务。但是要遵循一个原则,那就是不到必不得已(对象库编程实在没法解决),绝对不要去使用描述性编程,千万要杜绝想使用了就随意使用的情况。这样做有什么好处?最大的好处就是可以使脚本一目了然从而增加了可维护性!当一段脚本中都是对象库编程,突然有一行出现了描述性编程,那即使过了几个月后再看脚本,我们也可以马上明白,当前步骤是比较特殊的,是对象库编程完成不了的。反之,如果不养成这个好习惯的话,那整个脚本的层次就会显得非常乱,时间久了一定分不清哪些使用描述性编程的语句属于没必要范畴,而哪些属于必要范畴。

  接下来,就举一些项目中需要使用到描述性编程的案例。

  (1)百度首页有很多相同的Link控件,如“新闻”、“网页”、“图片”等,全部添加到对象库很麻烦,那么该如何使用描述性编程完成?

  首先,先来看下场景图,如图1-190所示。

图1-190

  一个首页就有接近?20?个相同类别的控件(Link),虽然不多,但是一个个添加也够烦锁的,既然它们是完全相同类型的控件,那么使用描述性编程是一个上佳之选,下面来看这段脚本,看看是如何实现的:

Set baidu = Browser("micClass:=Browser").Page("micClass:=Page")

Print Baidu.Link("name:=新闻").Exist

With baidu

        Print .Link("name:=贴吧").Exist 

        Print .Link("name:=知道").Exist 

        Print .Link("name:=MP3").Exist 

        Print .Link("name:=图片").Exist 

        Print .Link("name:=把百度设为主页").Exist 

        Print .Link("name:=搜索风云榜").Exist 

        Print .Link("name:=About Baidu").Exist 

End With

Set baidu = Nothing

42/4<1234>
春暖花开更文季,点击参与还有惊喜礼品~

精彩评论

  • feil飞
    2015-9-09 16:16:50

    不知道为什么,有好几行都是false。如Print Baidu.Link("name:=新闻").Exist就是false,顶部是有这个新闻链接的

  • liqiuheng
    2013-6-03 16:57:02

    图1-192下的代码直接运行,会有general run error,需要在all_oEdit("micClass").value = "WebEdit" 后加一句:
    all_oEdit("html tag").value="input"
    就不会有问题了,有人知道这是为什么吗?虽然可以运行了,但想知道原理。。。求高人指点

  • 51test_pp
    2012-2-17 21:49:27

    从开始到现在已经看了二十七节,发现作者每节都写的非常精彩。我想问一下,如果对一个以Java Applet为主的网站应该怎样进行测试,到目前为止,我还不是很清楚。希望作者后续会讲到。谢谢作者

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号