xingcyx 2006-12-22 11:25
测试工具QTP与WinRunner的比较
本文是我很早以前整理的,因为今天在论坛上有位朋友问到相关问题,因此贴出来供大家参考。由于写作时间有点早,之后也没再深入学习过这两个工具,因此如果文中有错误之处,还望各位批评指正!
QTP,全称为Quick Test Professional,它与WinRunner同为MI公司开发的功能强大的功能测试工具。从时间上来看,WinRunner在1995年便已经推出,远早于QTP,而QTP直到2002年才正式推出。从MI公司提供的一些官方资料来看,虽然他们宣称暂时不准备淘汰WinRunner,但他们的宣传资料上又明确表示,QTP已经具备了WinRunner中几乎所有的特性,同时具备了一些独有的特性,并且总体来说,使用更简单、更易扩展和维护,推荐新用户使用QTP,并建议已使用WinRunner的老客户逐渐实现转换。由此看来,MI公司实际上已经有使用QTP逐步取代WinRunner的计划。更重要的是,QTP对J2EE,.NET架构的应用程序支持得比WinRunner要好(从我实际的试用过程中,也感到确实是如此),因此我认为,从我们公司的实际情况出发,针对产品综合部今后将逐步开展自动化测试的计划,QTP应该是一个比较好的选择。
不论是WinnRunner还是QTP,它们都是功能十分强大的测试工具,加上目前国内关于测试工具的培训和文档资料,实在是少之又少,因此要完全了解和掌握它们,绝不是一朝一夕的事情。在这里我只能就目前对它们的理解程度粗略地介绍一下二者的两点主要不同之处。
1、 使用的脚本语言不同。WinRunner使用的是TSL语言,这是MI公司独有的语言,有特殊性,因此在学习上会有一定难度,不过好在它与C 语言比较类似,如果测试人员有一定的C语言编程基础,会相对容易一些。而QTP使用的则是微软的VBScript语言,比较通用,而且也相对简单易学。从语言上的比较上来看,我个人觉得在编程能力上,WinRunner更胜一筹,因为它拥有相当丰富的C语言函数库,而相对而言,QTP则更大众化,它面向的是没有太多技术背景和编程经验的测试人员。
2、 QTP8.0具有的一大特性:关键字驱动测试(keyword-driven testing)。它的具体操作方法我将有另外的文档详细说明,这里只是简单介绍一下。通过“关键字驱动测试”,测试人员不需要“录制”测试脚本,而可以改成“设计”测试脚本。即:先将应用程序的GUI对象添加到QTP的对象仓库(Object Repository)中,然后针对每一个需要操作到的对象设计每个测试步骤。我个人感觉,这的确是一个很酷的特性,它使我们可以不必实际去操作应用程序,就可以编写出测试脚本,这样做既节省了时间,而且还有一个更大的好处就是可以在应用程序还没有设计完成,或者由于出错无法正常执行的时候仍然可以编写我们的测试脚本。应用程序只需要有使用界面(UI),而不必实际运行,测试人员就可以开始建立测试脚本,为我们实施自动化测试赢得更充足的时间。而在 WinRunner中,虽然也可以采用先学习对象,然后编写代码的方式来完成测试脚本,但这样做要求测试人员对TSL语言比较熟悉才做得到,远不如QTP 来得简单。在实际的操作中我还发现,有些时候采用录制的方法无法捕获对应用程序的操作,此时改用关键字驱动测试却可以收到不错的效果。
3、相对WinRunner,QTP还具有很多优点,例如“数据表整合”,“Active Screen”,“point and click”,更容易参数化等等,但对于这几点我还没有深入的做过比较,如果今后我对此有了更多的体会和了解,我将再作整理。
[[i] 本帖最后由 walker1020 于 2007-2-6 09:38 编辑 [/i]]
maguschen 2006-12-22 12:49
受教了~呵呵
顶一个sdlkfj2
minzhung 2006-12-22 14:19
太感谢了,我正在QTP和WR中犹豫不知道学什么好。。
yin830129 2006-12-22 14:22
努力学习ing.....
谢谢整理!
haship 2006-12-22 14:50
有点不明白?
"它的具体操作方法我将有另外的文档详细说明,这里只是简单介绍一下。通过“关键字驱动测试”,测试人员不需要“录制”测试脚本,而可以改成“设计”测试脚本。即:[u]先将应用程序的GUI对象添加到QTP的对象仓库(Object Repository)中,然后针对每一个需要操作到的对象设计每个测试步骤。[/u]我个人感觉,这的确是一个很酷的特性,它使我们可以不必实际去操作应用程序,就可以编写出测试脚本,这样做既节省了时间,而且还有一个更大的好处就是可以在应用程序还没有设计完成,或者由于出错无法正常执行的时候仍然可以编写我们的测试脚本。应用程序只需要有使用界面(UI),而不必实际运行,测试人员就可以开始建立测试脚本,为我们实施自动化测试赢得更充足的时间。"
先将GUI对象添加到QTP的对象仓库中,这一步!
这一步是否需要等程序开发完成之后才能进行吧,没有可见的对象,那么怎么添加到仓库中呢?
或者楼主说的是另外的方法?
那到底是什么方法呢?
xingcyx 2006-12-22 14:59
可能我没有说得很清楚,它的意思是,可以先将对象的属性添加到对象库中,但是这个对象可以并没有实际被开发出来,而仅仅是一个空壳。有点类似于单元测试中的“桩”的概念。
volvoo 2006-12-22 18:07
没有GUI对象的情况下,如何添加对象的属性,gui对象如果不是标准控件,识别是有问题的,先添加进入感觉不太合理,一般情况下,都是有了被测程序,才开始开发qtp脚本,我个人觉得如何编写一个通用的脚本是更重要的,在界面变化的情况下,对于最大程度的减少qtp脚本的维护工作量是很有用的。
shf5892639 2006-12-27 14:58
研究中!
testuser888 2006-12-27 17:11
正考虑学哪个?受教了!
李洁 2006-12-28 17:45
studysdlkfj6 sdlkfj5
毛毛草 2006-12-28 18:14
呵呵
恩..俺正在学qyp呢~~呵呵
kzy04 2007-2-6 08:51
我决定用qtp了
我决定用qtp了
walker1020 2007-2-6 11:25
[quote]原帖由 [i]haship[/i] 于 2006-12-22 14:50 发表
"它的具体操作方法我将有另外的文档详细说明,这里只是简单介绍一下。通过“关键字驱动测试”,测试人员不需要“录制”测试脚本,而可以改成“设计”测试脚本。即:先将应用程序的GUI对象添加到QTP的对象仓库( ... [/quote]
我猜测楼主的意思是 先把对象添加到对象库中去,然后采用描述性编程,根据Test Case等写相应的脚本,这样等开发人员把程序开发出来时,测试人员也把测试脚本写好了。这样能争取到宝贵的时间。
wssgily 2007-2-6 18:53
[url]http://www.51testing.com/html/27/2084.html[/url]
fanglu619 2007-4-30 15:18
学习中
leojava 2007-5-19 09:09
强,顶一个
brianq 2007-5-24 13:46
我才知道QTP好过WinRunner。要学习!
ccc-51testing 2007-5-24 14:18
原来如此
machao514 2007-5-24 15:22
支持
定
xwxw 2007-5-25 17:51
~~~ 终结的不错
yilan8282 2007-5-27 09:40
哈哈 学习中,谢谢!
mcl19800627 2007-6-26 10:48
正在学习中
葫葫 2007-7-30 14:36
真是太好的,正需要呢,谢谢
three116 2007-8-9 13:05
谢谢 不错
nawwh_100 2007-8-10 11:30
有道理,还是学习qtp
szm 2007-8-12 14:38
谢谢楼猪,学习一下
zhangj8826 2007-8-15 11:42
强,受益匪浅啊
色彩 2007-8-16 10:26
顶
正是我要了解的,TKSsdlkfj3
zhangsy 2007-8-20 21:33
谢谢,那我就重点学QTP了。
sspsnake 2007-8-21 15:40
原本犹豫中
非常感谢,解决困惑
namedxf 2007-8-26 14:59
哦,领悟中。。。。
lingting 2007-8-26 22:44
咨询一下楼主
qtp是否支持pb开发的程序 ,在wr中我知道是支持的
seamap 2007-10-15 11:26
写的很不错,受教了:victory:
zhmiss 2007-10-28 16:38
要学习一下了!现在正在学工具!不懂的还很多啊!
zcourage 2007-11-6 16:52
描述性编程,可以不要把对象加到对象库啊
kakamissyou 2007-11-10 20:41
回复 5# 的帖子
楼主讲的是开发的原型.
一个最基础的,壳的东西.
mrxangel1986 2007-11-30 22:40
QTP是WINRUNNER升级版本..
ZH_0211 2007-12-20 12:09
回复 13# 的帖子
我不同意这种看法,采用描述性编程测试后,再做修改,那么之前的编程过程则可以在一定程度上说,是在做无用功!!!
个人认为,在这个UI对象还没有开发成为用户可见的对象之前,在需求分析中是存在该对象的属性的,要不开发人员怎么知道要这个对象实现的是什么功能?那么同理可得,有属性就可以添加到对象库了!!
heqingbluesky 2008-1-22 12:07
WR也有它自己的特点.
ImmenseLH 2008-2-13 16:30
我才知道QTP好过WinRunner。要学习!