星期五, 九月 15, 2006

QuickTest Plus小工具,大作用(转载)

象我这样初学QTP的朋友刚开始时很可能没有注意到QuickTest Plus,因为QTP安装后默认是没有安装plus的,千回百转知道了plus,大概看了看,发现plus虽然都是些辅助性的小工具,但往往会给你的工作带来事半功倍的效果。

一、安装QuickTest plus
QTP安装后,在 程序 > QuickTest Professional下点击QuickTest Plus,然后按照提示一步步往下安装即可, 其中要求输入序列号,输入和QTP安装时相同的序列号就可以了(8888-8888888888)。

二、提示和技巧
plus不仅提供了一些工具,还在它的帮助手册里给出了一些提示和技巧,以及一些实用的Function。 在这里我把一些比较常用的好东东贴出来,其他的就看plus的帮助吧。

1、创建action template. 当希望在每一个新建action时都增加一些头部说明,比如作者、创建日期、说明等,用action template 来实现最简单快捷。
方法:用记事本等文本编辑器,输入如下类似的内容:
'Company: xxxx
'Author: xxx
'Product: xxx
'Date: xx
然后将文件保存为ActionTemplate.mst,并存放到QTP安装目录下的dat目录,重启QTP,新建一个action试试,新建的action会包含以上信息。

2、关于设置测试报告里只显示error的信息。
帮助中说:修改安装目录下bin\QTReport.ini文件,增加以下内容:
[FilterDialog]
ReportAppDefaultFilter=1 # for error only
ReportAppDefaultFilter=3 # shows all messages (default)
但根据我的测试结果,不尽其然:
1)当ReportAppDefaultFilter=1时,如果Object Repository中缺少对象,在报告中会在相应的 action前打叉,但不会提示具体错误,而成功的步骤都有具体信息显示。
2)用Reporter.ReportEvent测试的结果是:
ReportAppDefaultFilter=1时,只显示micDone的具体信息;
ReportAppDefaultFilter=2时,只显示micFail的具体信息;
ReportAppDefaultFilter=3时,只显示micDone和micFail的具体信息; ReportAppDefaultFilter=4时,只显示micPass的具体信息;
似乎无规律可寻,所以我的结论暂时是:不要设置这个参数,用默认的,显示所有信息,更多的信息有利于分析结果。

3. 启动IE的语句:SystemUtil.Run "iexplore.exe", http://www.mercuryinteractive.com

4. 关闭IE或其他程序的语句:SystemUtil.CloseProcessByName "app.exe" or SystemUtil.CloseProcessByWndTitle "Some Title"

三、Function Libraries
plus的帮助中提供了一些常用的Function,把这些function copy到文本编辑器中保存为.vbs文件,并添加到Resources中就可以直接调用了, 或直接copy到你的action中,就可以在当前的action中调用。更推荐第一种方法,所有的action都可以调用。

1、文件操作相关的function,如下,望名则可生意:
Function CreateFile(sFilename, bOverwrite);
Function OpenFile(sFilename, iomode, create);
Function AppendToFile(sFilename, sLine);
Function WriteToFile(sFilename, sLine);

2、Function NormalizeString(OrgStr); (将字符串变成regular express)

3、GlobalDictionary的使用,这是另外一种可以共享全局变量的方法,在所有的action中,包括local和external action中都可以访问。

4、使用文件系统相关的function:
Function ReadLineFromFile (byref FileRef);
Sub FileDelete ( FilePath);
Function FileCompare (byref FilePath1, byref FilePath2, byref FilePathDiff, ignoreWhiteSpace);
Function CheckFileExists (FilePath)

5. web table相关的function:
Function ItemByKeyColumn(): 根据table中某列的值,得到同一行中另一列的对象。(这个功能非常有用。)
Function ObjectsByMicClass(Obj, micClass): 得到table中所有的micClass类型的对象集合。

四、工具

1、Automation Generator Utility
添加一系列动作,然后自动完成。如:启动QTP,然后执行test1, test2, test3...,最后关闭QTP,还可以连接或断开Quality center.
值得注意的是,每个test都可以分别指定test result文件,这样可以把所有test result指定到同一个目录下,所有test执行完成后,用Test Result Viewer就可以快速的查看测试报告。

2、External Action Call Modifier Utility
外部Action调用修改工具。当删除一个Reusable action前,如果没有先删除其他test中对它的调用,则打开其他test时,会提示找不到某某action,这种情况下启用该工具,工具会列出test下所有调用的外部action(如果调用的action是使用相对路径,则不会列出来),如果外部action找不到,会用红色的问号表示,删除它并保存后就OK了。
也可以在此处修改外部action的来源,修改后原来的action parameter仍会保留。

3、Repository Merge Utility
合并多个对象库文件中的对象,如果出现冲突,可以选择忽略,或手工合并,或自动合并。 对象库文件是Action目录下的Resource.mtr文件。

4. Report Analyzer
Test Result的另一个查看工具,提供了一些过滤条件,比如只查看failed step, 或只查看checkpoints,或只查看某个action。

先就写这么多了,抛砖引玉,希望你能发现你想要的东西。写得不对的,不要客气,请指出来,不胜感激。

没有评论: