QTP参考资料.docx
《QTP参考资料.docx》由会员分享,可在线阅读,更多相关《QTP参考资料.docx(92页珍藏版)》请在冰点文库上搜索。
QTP参考资料
QTP参考资料收集
1、QTP的Action间的信息共享的4种方
通过Action参数来传递数据
Action2的脚本如下:
'InputParameters
Message=Parameter("Msg")
MsgboxMessage
'OutputParameters
IfNOTMessage=""Then
Parameter("ReturnMsg")="TheMessageis"&Message
Else
Parameter("ReturnMsg")="TheMessageisEmpty!
"
EndIf
'RetuenValue
ExitAction"HAHAHAHHAHA!
!
!
!
!
"
'ExitActionParameter("ReturnMsg")
3种调用Action的方法,Action1的脚本如下:
'调用Action2,输入参数为“Hello!
”,把输出参数值写到ReturnMessage1变量
RunAction"Action2",oneIteration,"Hello!
",ReturnMessage1
MsgboxReturnMessage1
'调用Action2,输入参数为“Hello!
”,通过Parameter方法读取输出参数值
RunAction"Action2",oneIteration,"Hello!
"
ReturnMessage2=Parameter("Action2","ReturnMsg")
MsgboxReturnMessage2
'如果被调用的Action使用了ExitAction来退出Action并返回ReturnValue,则可以使用下面的方式来获取ReturnValue的值
'注意OutPutParameters与ReturnValue的区别
ReturnMessage3=RunAction("Action2",oneIteration,"Hello!
")
MsgboxReturnMessage3
通过全局数据表(GlobalDataTable)来共享数据
在Action1中设置参数值,Action1的脚本如下:
'获取全局数据表
SetSheet=DataTable.GetSheet("Global")
'查找参数列
SetParameter1=Sheet.GetParameter("Column1")
SetParameter2=Sheet.GetParameter("Column2")
'设置参数值
Parameter1.Value="Hello"
Parameter2.Value="World!
"
'调用Action2,Action2将使用前面设置的参数值
RunAction"Action2",oneIteration
在Action2中读取参数值,Action2的脚本如下:
'获取全局数据表
SetSheet=DataTable.GetSheet("Global")
'读取参数值
SetParameter1=Sheet.GetParameter("Column1")
SetParameter2=Sheet.GetParameter("Column2")
'使用参数值
MsgboxParameter1&""&Parameter2
2、TD与QTP连接
1、安装TD,检验TD是否安装成功,启动TDServer服务器后,在与Server相连的其他计算机上,打开IE浏览器,在地址栏输入http:
//TDServer的ip地址/TDbin/start_a.htm如果能够浏览到TD界面,说明安装成功。
51Testing软件测试网@*mY5ak_u_Y_x
51Testing软件测试网k_|_qL#S_C_?
_J.f_M
2、安装QTP,验证QTP安装成功,进入windows操作系统,点击,开始->程序->QuickTestProfessional->QuickTestProfessional,打开QTP使用界面,进行简单的录制,保证脚本录制成功,并且可以回放,与你的预操作达到的结果一致,证明QTP安装成功。
s_x*b"K_b)t0
_S#w7i_v_S03、安装插件,进入TD首页,点击见面上的TDAddIn,进入TDAddIn界面点击MoreTestDirectorAddIns进入MoreTestDirectorAddIns界面,下载名为TDplugInsSetup的插件,大约35兆并且在Server与QTP客户机上安装这个插件,安装成功后,会要求你重启电脑,重启后会看到,开始-程序中有个新安装的程序“QuickTestProfessinaladdinforQualityCenter”,登入TD进入testplan检测是否可以在testplan中添加QTP类型的测试用例,点击后,出现QUICKTEST.TEST,并且可以建立QTP的测试用例。
m$ydw1r'd7R0
v_^1AOz_d(g+W04、检查没有问题之后,还需要在安装QTP的机子上做一些相应的设定,进入QTP主界面,点击文件栏的Tools-Options,进入Options对话框在RunTab中选择AllowotherMercuryproductstoruntestandcomponents,以及SubmitadefecttoQualiytCenterforeachfailedstep选中后,点击ok保存这个设置,在QTP主界面中点击Tool-QualityCenterConnection,在Server中输入http:
//TDServerip地址/TDbin(本例中使用htt......),点击connect按钮,QTP连接到服务器上,如果服务器连接有问题,则会提示连接失败。
5a_?
*`_R6j,q0
_U"t,v3y"M05、在projectconnection中包含一下几项:
_hJ_N_]"|0 Domain:
TD服务器站点管理中建立项目的域51Testing软件测试网_f_qS"F_t-L_G_O.n
Project:
域中你所建立的项目
_c_L?
___RjY(p_k0 User:
登陆项目所用的用户名51Testing软件测试网n8X_d.B8J_O_^+\z5G
Password:
相应用户名使用的密码51Testing软件测试网_Gv5k_?
'@_FN
Reconnectonstartup在下次启动QTP时自动登陆到你的项目中51Testing软件测试网+J_v_c%Z_tN_Z
Savepasswordforreconnectiononstartup为下次登陆保存密码51Testing软件测试网B_}_}_y'[_L
完成了上述操作就TD和QTP就连接起来,可以从TD调用QTP脚本了
3、QTP读取Excel数据的方法
在构建自己的测试框架时,或者是从Excel读入外部数据进行检查时都要用到Excel的COM对象编程方法,下面脚本中的ReadFile函数就实现了这样的功能,首先创建Excel应用程序对象,然后打开Excel文件,把Excel数据读取到一个数组中。
arrRange=ReadFile("D:
\QTP\MyWork\ReadExcelFileTest1\ObjectTree.xls","Tree")
'MsgboxUBound(arrRange,1)
'MsgboxUBound(arrRange,2)
'读取其中一个单元格的数据
MsgboxarrRange(3,1)
'输入:
' sFileName:
Excel文件
' sSheetName:
表单名称
'返回:
' 包含Excel数据的数组
FunctionReadFile(sFileName,sSheetName)
DimoExcel
DimoSheet
DimoRange
DimarrRange
OnErrorResumeNext
'创建Excel应用程序对象
SetoExcel=CreateObject("Excel.Application")
Iferr.Number<>0Then
MsgBox"未能初始化Excel"&vbCrLf&_
"请确保Excel已安装",vbCritical
ExitFunction
EndIf
OnErrorGoto0
OnErrorResumeNext
'打开Excel文件
oExcel.Workbooks.Open(sFileName)
Iferr.Number<>0Then
MsgBox"未能加载Excel文件"&vbCrLf&_
"请确保Excel文件路径正确或格式正确",vbCritical
ExitFunction
EndIf
OnErrorGoto0
'获取表格的使用范围
SetoSheet=oExcel.Worksheets(sSheetName).UsedRange
'获取从A列到Z列,从第1行到第1000行的范围i中的所有值
SetoRange=oSheet.Range("A1:
Z1000")
'把Excel数据转换到数组
arrRange=oRange.Value
'关闭工作簿
oExcel.WorkBooks.Item
(1).Close
'退出Excel
oExcel.Quit
SetoExcel=Nothing
'返回包含Excel数据的数组
ReadFile=arrRange
EndFunction
4、QTP连接数据库
一、OLE-DB连接方式
1 字符串方式
ConnectionString="Provider=SQLOLEDB.1;DataSource=YourSrc;
UID=YourUid;PWD=YourPwd;Database=YourDB"
或
ConnectionString="Provider=SQLOLEDB.1;DataSource=YourSrc;
UserID=YourUid;Password=YourPwd;InitialCatalog=YourDB"
其中,Provider为服务于连接的底层OLE-DB数据供应程序的名称;DataSource为服务于底层数据供应程序的数据源名称;UID或UserID为连接时使用的用户名;PWD或Password为连接时使用的密码;Database或InitialCatalog为位于数据库服务器上的一个特定数据库。
2 数据链接文件方式
创建一个空文本文件,将其扩展名改为.udl来创建一个数据链接文件。
双击该文件打开DataLinkProperties对话框,在Provider页选择提供者(不要选择基于ODBC的提供者,因为这样实际上是间接藉由ODBC实现数据库连接),在Connection页指定实现连接的细节。
使用数据链接文件进行连接的ConnectionString如下:
ConnectionString="FileName=C:
YourFile.udl"
用记事本打开数据链接文件,可以看到第三行文本是一个连接字符串,指定了连接的细节。
如果在Connection页选中了“Allowsavingpassword”,则在该文件中也会记录用户的密码信息。
二、ODBC连接方式
使用ODBC连接方式,首先要配置ODBC数据源。
ODBC数据源配置成功后,就可以相应指定下面介绍的连接字符串进行数据库连接。
1 ODBC的系统DSN连接方式
ConnectionString="DSN=SysDSNName;UID=YourUid;PWD=YourPwd;Database=YourDB"
其中,DSN为系统DSN的名称,其它参数与3.1中介绍的参数相同。
2 ODBC的文件DSN连接方式
ConnectionString="FileDSN=FileDSNName;UID=YourUid;PWD=YourPwd;Database=YourDB"
其中,FileDSN为文件DSN的名称,其它参数与3.1中介绍的参数相同。
用记事本打开相应的.dsn文件(一般位于C:
ProgramFilesCommonFilesODBCDataSources目录下),可以看到,类似于数据链接文件,该文件中也指定了连接的细节。
3 ODBC的无DSN连接方式
ConnectionString="Driver={SQLServer};Server=YourServer;
UID=YourUid;PWD=YourPwd;Database=YourDB")
此方式不用配置ODBC数据源。
其中,Driver为ODBC驱动程序名称,Server为数据库服务器名称,其它参数与3.1中介绍的参数相同。
4 数据链接文件方式
首先,采用3.2中的方法创建数据链接文件。
但进行文件配置时,在Provider页中选择基于ODBC的提供者——MicrosoftOLEDBProviderforODBCDrivers。
此方式的ConnectionString与3.2中介绍的相同。
三、实例
下面是采用OLE-DB的字符串方式,连接到SQLServer2000数据库的示例代码:
ConnectionString="Provider=SQLOLEDB.1;DataSource=YourSrc;
UID=YourUid;PWD=YourPwd;Database=YourDB";初始化连接字符串
SetConn=Server.CreateObject("ADODB.Connection") ;创建Connection对象
Conn.Open ConnectionString ;调用Open方法,建立连接
… ;进行数据存取操作
Conn.Close ;关闭连接
SetConn=Nothing ;释放Connection对象
需要注意的是,应尽可能晚的建立连接,同时又尽可能早的关闭连接,这样保证连接打开的时间最短,可以充分发挥OLE-DB的连接缓冲池的作用,节省连接资源。
文章2:
-------------------------------------------------------------------------
5、QuickTestPlus小工具,大作用
象我这样初学QTP的朋友刚开始时很可能没有注意到QuickTestPlus,因为QTP安装后默认是
没有安装plus的,千回百转知道了plus,大概看了看,发现plus虽然都是些辅助性的小工具,但
往往会给你的工作带来事半功倍的效果。
一、安装QuickTestplus
QTP安装后,在程序>QuickTestProfessional下点击QuickTestPlus,然后按照提示一步步往下安装即可,
其中要求输入序列号,输入和QTP安装时相同的序列号就可以了(8888-8888888888)。
二、提示和技巧
plus不仅提供了一些工具,还在它的帮助手册里给出了一些提示和技巧,以及一些实用的Function。
在这里我把一些比较常用的好东东贴出来,其他的就看plus的帮助吧。
1、创建actiontemplate.
当希望在每一个新建action时都增加一些头部说明,比如作者、创建日期、说明等,用actiontemplate
来实现最简单快捷。
方法:
用记事本等文本编辑器,输入如下类似的内容:
'Company:
xxxx
'Author:
xxx
'Product:
xxx
'Date:
xx
然后将文件保存为ActionTemplate.mst,并存放到QTP安装目录下的dat目录,重启QTP,新建一个action试试,新建的action会包含以上信息。
2、关于设置测试报告里只显示error的信息。
帮助中说:
修改安装目录下bin\QTReport.ini文件,增加以下内容:
[FilterDialog]
ReportAppDefaultFilter=1#forerroronly
ReportAppDefaultFilter=3#showsallmessages(default)
但根据我的测试结果,不尽其然:
1)当ReportAppDefaultFilter=1时,如果ObjectRepository中缺少对象,在报告中会在相应的
action前打叉,但不会提示具体错误,而成功的步骤都有具体信息显示。
2)用Reporter.ReportEvent测试的结果是:
ReportAppDefaultFilter=1时,只显示micDone的具体信息;
ReportAppDefaultFilter=2时,只显示micFail的具体信息;
ReportAppDefaultFilter=3时,只显示micDone和micFail的具体信息;
ReportAppDefaultFilter=4时,只显示micPass的具体信息;
似乎无规律可寻,所以我的结论暂时是:
不要设置这个参数,用默认的,显示所有信息,更多的信息有利于分析结果。
3.启动IE的语句:
SystemUtil.Run"iexplore.exe",""
4.关闭IE或其他程序的语句:
SystemUtil.CloseProcessByName"app.exe"
orSystemUtil.CloseProcessByWndTitle"SomeTitle"
三、FunctionLibraries
plus的帮助中提供了一些常用的Function,把这些functioncopy到文本编辑器中保存为.vbs文件,并添加到Resources中就可以直接调用了,
或直接copy到你的action中,就可以在当前的action中调用。
更推荐第一种方法,所有的action都可以调用。
1、文件操作相关的function,如下,望名则可生意:
FunctionCreateFile(sFilename,bOverwrite);
FunctionOpenFile(sFilename,iomode,create);
FunctionAppendToFile(sFilename,sLine);
FunctionWriteToFile(sFilename,sLine);
2、FunctionNormalizeString(OrgStr);(将字符串变成regularexpress)
3、GlobalDictionary的使用,这是另外一种可以共享全局变量的方法,在所有的action中,包括local和externalaction中都可以访问。
4、使用文件系统相关的function:
FunctionReadLineFromFile(byrefFileRef);
SubFileDelete(FilePath);
FunctionFileCompare(byrefFilePath1,byrefFilePath2,byrefFilePathDiff,ignoreWhiteSpace);
FunctionCheckFileExists(FilePath)
5.webtable相关的function:
FunctionItemByKeyColumn():
根据table中某列的值,得到同一行中另一列的对象。
(这个功能非常有用。
)
FunctionObjectsByMicClass(Obj,micClass):
得到table中所有的micClass类型的对象集合。
四、工具
1、AutomationGeneratorUtility
添加一系列动作,然后自动完成。
如:
启动QTP,然后执行test1,test2,test3...,最后关闭QTP,还可以连接或断开Qualitycenter.
值得注意的是,每个test都可以分别指定testresult文件,这样可以把所有testresult指定到同一个目录下,所有test执行完成后,
用TestResultViewer就可以快速的查看测试报告。
2、ExternalActionCallModifierUtility
外部Action调用修改工具。
当删除一个Reusableaction前,如果没有先删除其他test中对它的调用,则打开其他test时,会提示找不到某某
action,这种情况下启用该工具,工具会列出test下所有调用的外部action(如果调用的action是使用相对路径,则不会列出来),如果外部
action