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

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

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

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

1.7  描述性编程(Descriptive Programming)

  阶段要点

  ● 描述性编程不高深。

  ● 描述性编程的两种写法。

  ● 描述性编程实例介绍。

1.7.1  一点都不高深的描述性编程技术

  QTP刚进入国内不久时,各大测试论坛曾经有过一场持续了多年的争论,引起这场争论的导火线就是对象库编程(以下简称ORP)和描述性编程(DP)。这场争论持续了至少3年以上。争论的话题都是使用QTP进行自动化测试,其测试脚本是使用对象库编程好还是描述性编程好,有兴趣的读者完全可以在51Testing论坛中输入一些关键字进行搜索,如“对象库描述性编程”等,相信应该还能重新找到不少信息。

  大约从2009年开始,随着大家对QTP技术的了解,ORP与DP的争论已经越来越少了,因为随着时间的推移,国内的QTP自动化测试技术也发展到了一定高度,使得越来越多的测试人员更倾向于ORP!为什么?ORP技术为什么好过DP技术?有什么依据?暂时先不说,先说说大多数当初支持DP的人们的一些心态:

  第一种也是最典型的一种,就是描述性编程这个名词里嵌套了“编程”两字,这得怪Mercury开发QTP的时候提出了DP这一概念!这“编程”两个字可误导了不少测试新人。相信大家都知道,国内测试行业的很多新人大多都是其他行业转型过来的,相对做测试的门槛没有做开发那么高,很多也没有经受过系统的计算机软件方面的学习,所以对“编程”一直很向往,觉得编程很难,所以一听到QTP的描述性编程这个概念,就觉得是个很高深的技术。在早期,就是因为这种心态使得一大批测试新人在慢慢熟悉并会使用QTP以后,明明可以不去使用DP也硬要去使用,以显示自己是技术牛人,其实这种举动是化简为繁并脱离了自动化测试的本意。当然,很多支持DP的人不是属于炫耀范畴的,是属于被“编程”两字忽悠了的范畴的。

  第二种也是比较典型的,因为以前大家都认为DP很高深,觉得DP是QTP中的精髓。所以,如果使用DP写脚本并提交给测试经理看,那领导一定会认为你很牛。很明显,以上两种都是稍许带有贬义的。

  第三种争论的焦点是自动化测试框架,配合自动化测试框架,在进行QTP编程的时候到底用ORP好还是DP好?这个也可以说是3个中唯一一个真正对国内自动化测试领域的提高有价值的争论,因为的确是各有好处的!关键不是使用哪种QTP编程技术,更多的焦点是框架设计的怎么样。

  所以,排除第三种自动化测试框架的特殊情况,选择ORP技术的人们是理智的人群,咱也不能说选择DP的人们就是不理智的,但是可以肯定,如果明明可以使用ORP技术却还硬要使用DP技术的人们是肯定不理智的。

  很自然的,对象库编程就是我们上一章节刚刚重点介绍过的非常强大的一个功能,而描述性编程就是本章节要介绍给各位新人读者的一项编程技术。其实呢,本人一开始听到QTP的描述性编程技术的时候也一直以为是一门很高深的技术。事实上……下面就会用实例证明给大家看,其实DP就是这么简单的一回事!现在基本上大家都认可了ORP是QTP自动化测试的首选,为什么?因为ORP的确经得住考验,而且在下面的“终极对决”的小节里,还会让ORP和DP来一次大“PK”来证明,为什么选择ORP是理智的,为什么大家最终还是倾向于ORP,并且还会介绍一下ORP相比DP的一些优越性。

1.7.2  掌握描述性编程的两种写法

  首先,需要用最简单和生动的例子来介绍描述性编程的概念,或者说它到底具体是什么,我们仍然用百度页面,请先看下面图1-181以及代码段。

图1-181

  相信读者应该都已经很熟悉图1-181了,它是一个对象库,里面添加了一些需要操作的百度网站的对象。接下来我们来看代码的实现:

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

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

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

WebButton("百度一下").Click

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

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号