QTP之delphi试用感想一,自动化测试

这两天一直在琢磨自动化测试,自动化测试,其实与单元测试有一些相同之处,单元测试的目的也是可以一次写,多次运行,对于测试驱动及后期维护真是有非常多的好处,用自动化测试工具也是如何,主要目的是为了回归测试。单元测试的时候,我们要先准备数据,再测试,最后再进行数据清理,自动化测试也是如此,大家千万别觉得自动化测试就是开个测试工具,然后就不用动手了之类的云云。更多的准备知识,就暂时不需要了。

工具的选择,看当前主流的C/S都是MI公司,估计WR(winrunner)和QTP(QUICK TEST PROFESSIONAL)用的人多一点。于是就一直忙着对这两个工具进行比较,因为一直是用DELPHI进行编程,所以这些工具对于DELPHI的支持就是首选的,比来比去,觉得可能QTP会是MI公司以后的主打产品,于是主要的方向还是针对于QTP了,但本人其实是喜欢用C脚本,也很喜欢WR的自动学习模式。

在选择版本上,我豪不犹豫地选择了QTP9,因为是正式版(指的不是测试版,别和正版混在一起了),所以我更喜欢用最高版本的,这样,不致于使自己的技术落后很多。当然,我们用的只能是破解之后的了,QTP9的破解目前没有,幸好可以先用QTP8.2,破解后再装QTP9的试用版,选择升级安装,这样就变成了QTP9的破解版了。这一切的一切,都可以在www.17testing.com及 www.51testing.com上找到。除了装这些,你还得安装一个delphi的插件,否则就很麻烦了,这插件在网站上也可以看到。如果不装这个插件,估计就会气死了。这两个网站上还有几本中文的QTP方面的书,也是挺不错的,如果大家不知道如何取舍,可以给我发邮件,估计等收到你邮件的时候,我已经收集了不少这方面的书了,我可以邮给你们 qiubole@163.com。

在使用QTP之前,建议先看看QTP用户指南的目录,如果你有精力,最好还是看看它的一个简单的Tutorial,这个有中文版的,废话不多说了,要是你那两本都看完了,估计你也就不会看我这个文档了

运行QTP,记得选上DELPHI的插件,打开自己用DELPHI写的一个程序,就可以开始我们自动化测试的第一步了。我这个DELPHI写的程序很简单,就是做X+Y=Z这样的事。放了两个EDIT,其中一个是TEDIT,另一个是我继续TEDIT后的一个TQEDIT,只是简单的继承,啥代码也没有,然后,一个BUTTON,一个LABEL。

在QTP里,先进行RECORD,RECORD有几种方式,一种是选择当前已经打开的应用程序,另一种是可以自己设置在RECORD的时候,由QTP打开程序。

好了,正式录了,把集点切换到我的程序中,然后在第一个EDIT上输1,第二个EDIT上输1,按一下BUTTON,OK了,STOP。

先来看看我们录制的成果吧,在QTP中,已经帮我们生成了代码,也生成了好多步骤。先检验一下先,进行RUN。把DELPHI程序关了,再开。运行。。。。。。。。怎么回事,一运行就报错,找不到对象。这个时候,我们先STOP一下。其实这是因为我自己写的EDIT的类QTP不认识,一个东西它不认识,它就会用很奇怪的方式来标识(或许你在想,该死的,为啥,不用座标来进行标识,其实还真可以这样)我们可以有办法来解决它。于是我们告诉QTP,用哪几个属性来标识它,在keyword view中,找到那个EDIT所在的条目,点右键,有一个object propertys,看一下里面的条目,估计是用window

id来进行标识的,把它删除了,增加一个delphiname的条目,这个条目的内容,其实就是DELPHI中控件的NAME。这个NAME的值,在运行程序的时候,我们怎么得到呢,QTP早就帮我们想到了,在QTP中,有一个工具,做SPY,和VS工具里的SPY有点类型,我们用这个SPY来找到我们程序中那个EDIT的delphiname,填上去就OK了。再继续运行,OK了。于是你可能会想,要是窗体上有好多这种EDIT,我改起来岂不是要累死了,其实也有办法,我们可以给我们这个控件增加一个针对WIN控件的映射,找到TOOLS下的OBJECT IDENTIFICATION, 选择standard windows,增加一个user-defined控件map to: single edit然后在mandatory properties里,增加一个delphiname的项,以后录制的时候,就会把DELPHINAME给录进去。

(待续)

请大家从以下地址进行下载

QTP,WR,LR的下载:

[url]http://www.tomore.com/catalog/3_25/4.htm[/url]

官方下载:

[url]http://downloads.mercury.com/cgi-bin/portal/download/index.jsp[/url]

QTP 9.2

[url]http://esd.mercury.com/akdlm/trial/qtp/qtp92.zip[/url]

QTP相关的插件

[url]http://esd.mercury.com/akdlm/trial/qtp/qtp92-net-addin.zip[/url]

[url]http://esd.mercury.com/akdlm/trial/qtp/qtp-java-addin.zip[/url]

[url]http://esd.mercury.com/akdlm/trial/qtp/qtp92-web-services.zip[/url]

[url]http://esd.mercury.com/akdlm/trial/qtp/QTP82-visualage-addin.zip[/url]

[url]http://esd.mercury.com/akdlm/trial/qtp/QTP82-peoplesoft-addin.zip[/url]

[url]http://esd.mercury.com/akdlm/trial/qtp/QTP82-stingray-addin.zip[/url]

[url]http://esd.mercury.com/akdlm/trial/qtp/QTP82-sap-addin.zip[/url]

[url]http://esd.mercury.com/akdlm/trial/qtp/qtp82-oracle-addin.zip[/url]

[url]http://esd.mercury.com/akdlm/trial/qtp/QTP80-te-addin.zip[/url]

[url]http://esd.mercury.com/akdlm/trial/qtp/QTP80-siebel-addin.zip[/url]

[url]http://support.mercury.com/download/QuickTestProfessional/MI/3308867234-39456-qtp82_delphiaddinbeta1.zip[/url]

http://www.cnblogs.com/qiubole/archive/2007/01/23/627612.html