常用QTP函数合集[教学知识]_第1页
常用QTP函数合集[教学知识]_第2页
常用QTP函数合集[教学知识]_第3页
常用QTP函数合集[教学知识]_第4页
已阅读5页,还剩94页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、常用QTP函数合集*有用的没用的都丢到一起,可能会有你想要的,原本是分为FileOper、DataOper、WebOper(基于SAFFRON)、Win32Oper和ErrorOper五个文件后面三个超级啰嗦超级长的废物可能别人用不到,不过构造思路比较清晰,大家可以DIY一下,或许你会觉得很方便,至少可以不用CheckPoint*classArray = Split(Browser,Page,Frame,)descArray = Split(micclass:=Browser,micclass:=Page,micclass:=Frame,)objectArray = Split(Link,We

2、bButton,WebList,WebEdit,Image, ,)objectDescArray =Split(micclass:=Link,micclass:=WebButton,micclass:=WebList,micclass:=WebEdit,micclass:=Image, ,)*设计说明:关闭所有打开的IE程序输入:程序输出:设计人员:LIUYI027设计时间:2011-01-08调用举例:CloseBrowsers*Public Sub CloseAllBrowserSet Wshshell = CreateObject(Wscript.Shell)Set DialogObje

3、ct = Description.Create()DialogObject(micclass).Value = DialogSet Windows32Dialog = Desktop.ChildObjects(DialogObject)dlNum = Windows32Dialog.Count - 1For v = 0 to dlNumWindows32Dialog(v).CloseNextSet Windows32Dialog = NothingSet theBrowser = Browser(micclass:=Browser, index:=0)While theBrowser.Exis

4、t(0)theBrowser.Close有些系统页面可能在关闭的时候会有提示对话框出现waitNx = 1Do While waitNx 0 ThenWindow(regexpwndclass:=IEFrame,index:=0,text:=&wndTitle&.*).MaximizeElseWindowsBrowser(i).MaximizeEnd IfSet ObjectBrowser = NothingNextSet WindowsBrowser = NothingSet BrowserObject = NothingEnd Sub*设计说明:根据对象属性列表和属性值列表匹配Browse

5、r对象,该函数基本无用 程序输入:对象属性列表和属性值列表,列表使用英文半角的逗号分隔程序输出:创建对象设计人员:LIUYI027设计时间:2011-01-08调用举例:GenerateBrowserObject(name,title,保险业务管理系统,保险业务管理系统)*Public Function GenerateBrowser(p_Attlist,p_Keylist)AttArray = Split(p_Attlist,)KeyArray = Split(p_Keylist,)exeStr = Browser(If UBound(AttArray) UBound(KeyArray) T

6、henReportFail,使用GenerateBrowserObject函数参数输入错误,对象属性的个数应该与其对应的属性值个数相等!Exit FunctionEnd IfFor inx = 0 to UBound(AttArray)exeStr =exeStr&Chr(34)&AttArray(inx)&:=.*&KeyArray(inx)&.*&Chr(34)&,NextExecute Set MyObject = &exeStr&Quote(index:=0)&)If MyObject.Exist(0) ThenReportPass,使用GenerateBrowserObject函数构

7、造对象成功,按照Browser对象属性列表【&p_Attlist&】,属性值列表【&p_Keylist&】,生成Browser对象成功!ElseReportFail,使用GenerateBrowserObject函数构造对象失败,按照Browser对象按照属性列表【&p_Attlist&】,属性值列表【&p_Keylist&】,匹配Browser对象失败!ExitRunEnd IfSet GenerateBrowser = MyObjectEnd Function*设计说明:初始化所有打开的Browser页面,不厌设计复杂只为稳定高效程序输入:无程序输出:初始化成功或者失败设计人员:LIUYI

8、027设计时间:2011-01-08调用举例:BrowserSync*Public Function SyncronizeBrowser()Set MyBrowser = Browser(micclass:=Browser, index:=0)If MyBrowser.Exist(0) ThenMyBrowser.SyncDo Until MyBrowser.GetROProperty(url) AndMyBrowser.GetROProperty(name) Delay 50LoopElseSet MyBrowser = NothingSyncronizeBrowser = FalseRep

9、ort Warning ,初始化页面失败,页面初始化失败,需要重新操作!Exit FunctionEnd IfSet MyBrowser = NothingSyncronizeBrowser = TrueEnd Function*设计说明:打开指定的地址,并且初始化页面,特别说明:对于地址栏出现一次性sessionid的网页不可用该函数程序输入:url地址程序输出:初始化成功或者失败设计人员:LIUYI027设计时间:2011-01-08调用举例:print SyncronizeSepecifiedURL()*Public Function NavigateBrowser(para_myuri

10、)CloseAllBrowserSet IEBrowser = CreateObject(InternetExplorer.Application)IEBrowser.Visible = TrueIEBrowser.Navigate para_myuriSet ObjectBrowser = Browser(micclass:=Browser, index:=0)Do Until SyncronizeBrowser() = TrueWait(1)Loopactualurl = ObjectBrowser.GetROProperty(url)下面这个判断主要是为了解决初始化地址跳转问题,如果UR

11、L发生变化会导致对象属性发生变化从而导致运行错误。If actualurl para_myuri ThenObjectBrowser.CloseSet IEBrowser = NothingSet IEBrowser = CreateObject(InternetExplorer.Application)IEBrowser.Visible = TrueIEBrowser.Navigate actualurlIf Not SyncronizeBrowser() ThenReportWarning,使用NavigateBrowser函数IE初始化失败,打开指定页面【&myuri&】在初始化的时候失

12、败!Set MyBrowser = NothingSet IEBrowser = NothingExit FunctionEnd IfEnd IfSet ObjectBrowser = NothingSet IEBrowser = NothingReportPass,使用NavigateBrowser函数IE初始化成功,打开指定页面【¶_myuri&】并且初始化成功!NavigateBrowser = TrueEnd Function*设计说明:处理弹出对话框,主要用于弹出的可预知性能够得到控制的地方,未知弹出需引用其他函数处理程序输入:选择对话框操作:是/否/确认/取消/确定等等,是

13、否需要向结果中添加提示信息的报告程序输出:结果报告设计人员:LIUYI027设计时间:2011-01-08调用举例:HandleDialog 确认,Y*Public Function HandleDialog(regexpName,needAlertInfo)If Trim(regexpName) = ThenregexpName = 无需匹配的按钮!End IfSet Wshshell = CreateObject(Wscript.Shell)Set DialogObject = Description.Create()DialogObject(micclass).Value = Dialo

14、gSet WindowsDialog = Desktop.ChildObjects(DialogObject)dlNum = WindowsDialog.Count - 1If dlNum 0 ThenWindowsButton(binx).ClickReportPass,函数HandleDialog点击指定按钮成功,按照指定的按钮名称【®expName&】查找并点击按钮成功!Exit ForEnd IfIf binx = wbNum And Instr(btName,regexpName) = 0 ThenWshshell.AppActivate(dialogTitle)Wait(0)

15、Wshshell.SendKeys ENTERReportmicWarning,函数HandleDialog点击按钮,没有匹配到指定按钮,对已经弹出的对话框直接使用默认操作!End IfNextSet WindowsButton = NothingSet WinButtonObject = NothingNextSet WindowsDialog = NothingSet DialogObject = NothingSet Wshshell = NothingEnd Function*设计说明:SAFFRON框架引用以及部分改造,函数分流之后的部分程序输入:参见各个函数程序输出:设计人员:设计

16、时间:2011-01-08调用举例:*Public Function GenerateDescription (classString,isModleWindow)classNx = IndexOf(classArray, classString)If classNx = 0 Then增加对模态窗口的支持If isModleWindow = Y Or isModleWindow = True ThendescString = Window(&Quote(nativeclass:=InternetExplorer_TridentDlgFrame)&).ElsedescString = class

17、Array(0)&(&Quote(descArray(0)&).End IfIf classNx = 1 ThendescString = descString + classArray(1)&(&Quote(descArray(1)&).If 2 = classNx ThenIf hasFrameValue ThendescString = descString +classArray(2)&(&Quote(descArray(2)&,&Quote(name:=&hasFrameValue)&).End IfEnd IfEnd IfEnd IfGenerateDescription = de

18、scStringEnd Function*Public Function GenerateObjectDescription (objClassName, otherAtt)objNx = IndexOf(objectArray, objClassName)objNameString = If objNx -1 ThenobjNameString =objClassName&(&Quote(objectDescArray(objNx)&,&Quote(otherAtt)&,&Quote(index:=0)&).End IfGenerateobjectDescription = objNameS

19、tringEnd Function*Public Function ObjectWorkUnderFrame(frameName)hasFrameValue = frameNameEnd Function*Public Function ObjectNotWorkUnderFrame()hasFrameValue = End Function*Public Function VerifyObject (objectClassName, text,isModleWindow)rval = falselocalDesc = estr = If hasFrameValue ThenlocalDesc

20、 = GenerateDescription(classArray(2),isModleWindow)ElselocalDesc = GenerateDescription(classArray(1),isModleWindow)End IfSelect Case objectClassNameCase PageExecute rval =&GenerateDescription(classArray(1),isModleWindow)&Exist (0)If rval ThenExecute title =&GenerateDescription(classArray(1),isModleW

21、indow)&GetROProperty(&Quote(title)&)If title = text Thenrval = trueElserval = falseEnd IfEnd IfCase CurrentFrameIf hasFrameValue Thenestr = rval = &localDescEnd IfCase Linkestr = rval = &localDesc&GenerateObjectDescription(Link,innertext:=.*&text&.*)Case WebButtonestr = rval = &localDesc&GenerateObj

22、ectDescription(WebButton,value:=.*&text&.*)Case WebListestr = rval = &localDesc&GenerateObjectDescription(WebList,name:=.*&text&.*)Case WebEditestr = rval = &localDesc&GenerateObjectDescription(WebEdit,name:=.*&text&.*)End SelectIf estr ThenExecute estr + Exist (0)End IfIf rval ThenReport micDone, o

23、bjectClassName&匹配对象成功,对象【&objectClassName&】【 &Quote(text)& 】查询成功!VerifyObject = TrueElseReport Warning, objectClassName&匹配对象失败,对象【&objectClassName&】【 &Quote(text)& 】查询无果!VerifyObject = FalseEnd IfEnd Function*Public Function ClickSpecifiedObject (objectClassName, text, isModleWindow)localDesc = If h

24、asFrameValue ThenlocalDesc = GenerateDescription(classArray(2),isModleWindow)ElselocalDesc = GenerateDescription(classArray(1),isModleWindow)End IfSelect Case objectClassNameCase LinkExecutelocalDesc&GenerateObjectDescription(Link,innertext:=.*&text&.*)&ClickSyncronizeBrowserReport micDone,链接点击完成:,链

25、接【&text&】点击完毕,并且已经执行网页初始化!Case WebButtonExecute localDesc&GenerateObjectDescription(WebButton,value:=.*&text&.*)&ClickSyncronizeBrowserReport micDone, 按钮点击完成:,按钮【&text&】点击完毕,并且已经执行网页初始化!Case ImageExecute localDesc&GenerateObjectDescription(Image,alt:=.*&text&.*)&ClickSyncronizeBrowserReport micDone,

26、 图标点击完成:,图标【&text&】点击完毕,并且已经执行网页初始化!End SelectEnd Function*Public Function SelectFromList (objectName, text, isModleWindow)localDesc = rv = rval = falseIf hasFrameValue ThenlocalDesc = GenerateDescription(classArray(2),isModleWindow)ElselocalDesc = GenerateDescription(classArray(1),isModleWindow)End

27、 IflocalDesc = localdesc&GenerateObjectDescription(WebList,name:=.*&objectName&.*)Execute cnt = &localDesc&GetROProperty(&Quote(items count)&)For i = 1 to cntExecute rv = &localDesc&GetItem (&i&)If rv = text Thenrval = trueEnd IfNextIf rval ThenExecute localDesc&Select &Quote(text)SyncronizeBrowserR

28、eport micDone, 下拉列表选择成功,选择项【&text&】已经被查询到、选择,并且执行初始化!ElseReport micFail, 下拉列表选择失败,选择项【&text&】没有在下拉列表【&objectName&】中查询到查询到!Exit FunctionEnd IfSelectFromList = TrueEnd Function*Public Function EnterValueForEdit (objectName, text,isModleWindow)localDesc = rval = trueIf hasFrameValue ThenlocalDesc = Gen

29、erateDescription(classArray(2),isModleWindow)ElselocalDesc = GenerateDescription(classArray(1),isModleWindow)End IflocalDesc = localdesc&GenerateObjectDescription(WebEdit,name:=.*&objectName&.*)Execute localDesc&Set (&Quote(text)&)Report micDone, 文本框输入操作:,文本【&text&】成功输入到输入框【&objectName&】!EnterValueF

30、orEdit = rvalEnd Function*设计说明:从数据库中抓取指定表和列的数据,依赖ORAOLEDB组件的正常使用,不用创建数据源,不用配置连接串程序输入: 要执行的sql语句 要抓取的字段 数据库用户名 数据库主机的域名或IP 数据库主机的端口 数据库实例SID 数据库用户的密码程序输出:要抓取的字段设计人员: LIUYI027设计时间:2009-09-26调用举例:MsgBox FetchDBDataOle(select * fromplan,plan_code,A,05,1555,B,C)*Public FunctionFetchDBData(DBUse

31、rName,DBHostAddress,DBServerPort,DBSid,DBPassWord,sqlText,tableColumn)Set DBRec=createobject(adodb.recordset)Set DBCon=createobject(adodb.Connection)DBCon.ConnectionString=Provider=OraOLEDB.Oracle;User ID=&_DBUserName &;Data Source=(description =(address = (protocol =tcp)(host = &_DBHostAddress &)(p

32、ort = &_DBServerPort&)(connect_data =(sid = &_DBSid&);Password=&_DBPassWord&DBCon.OpenDBRec.Open sqlText,DBConFetchDBData = DBRec.Fields(tableColumn)DBCon.CloseSet DBRec = NothingSet DBCon = NothingEnd Function*设计说明:从数据库中抓取指定表和列的数据,基于MSDAORA对象的使用,不依赖ORAOLEDB,不用创建数据源,不用配置连接串程序输入: 要执行的sql语句 要抓取的字段 数据库

33、用户名 数据库主机的域名或IP 数据库主机的端口 数据库实例SID 数据库用户的密码程序输出:要抓取的字段设计人员: LIUYI027设计时间:2009-09-26调用举例:MsgBox FetchDBData(select * fromplan,plan_code,A,05,1555,B,C)*Public FunctionFetchDBDataMSDAORA(DBUserName,DBHostAddress,DBServerPort,DBSid,DBPassWord,sqlText,tableColumn)Set DBCon = CreateObject(ADODB.C

34、onnection)Set DBRec = CreateObject(ADODB.RecordSet)DBCon.Open = Provider=MSDAORA.Oracle;User ID=&_DBUserName&;Data Source=(description =(address = (protocol = tcp)(host= &_DBHostAddress &)(port = &_DBServerPort&)(connect_data =(sid = &_DBSid&);Password=&_DBPassWord&DBRec.OPEN sqlText,DBConFetchDBDat

35、aMSDAORA = DBRec.fields(tableColumn)DBCon.closeSet DBCon =NothingSet DBRec = NothingEnd Function*设计说明:按照传入SQL修改数据库的值,依赖ORAOLEDB组件的正常使用,不用创建数据源,不用配置连接串程序输入: 要执行的sql语句 数据库用户名 数据库主机的域名或IP 数据库主机的端口 数据库实例SID 数据库用户的密码程序输出:无设计人员: LIUYI027设计时间:2009-09-26调用举例:Call ModifyDBDataOle(A,05,1555,B,C,upda

36、teTest set Col = A where Col = B)*Public SubModifyDBData(DBUserName,DBHostAddress,DBServerPort,DBSid,DBPassWord,sqlText)Set DBRec=createobject(adodb.recordset)Set DBCom=createobject(mand)DBCom.activeconnection=Provider=OraOLEDB.Oracle;User ID=&_DBUserName&;Data Source=(description =(address = (proto

37、col = tcp)(host= &_DBHostAddress&)(port = &_DBServerPort&)(connect_data =(sid = &_DBSid&);Password=&_DBPassWord&DBCom.CommandType = 1DBCom.CommandText = sqlTextSet DBRec = DBCom.Execute()DBCom.CommandText = commitSet DBRec = DBCom.Execute()Set DBRec = NothingSet DBCom = NothingEnd Sub*设计说明:按照传入SQL修改

38、数据库的值,不依赖ORAOLEDB组件的使用,不用创建数据源,不用配置连接串程序输入: 要执行的sql语句 数据库用户名 数据库主机的域名或IP 数据库主机的端口 数据库实例SID 数据库用户的密码程序输出:无设计人员: LIUYI027设计时间:2009-09-26调用举例:Call ModifyDBData(A,05,1555,B,C,updateTest set Col = A where Col = B)*Public SubModifyDBDataMSDAORA(DBUserName,DBHostAddress,DBServerPort,DBSid,DBPassW

39、ord,sqlText)Set DBCon = CreateObject(ADODB.Connection)Set DBRec = CreateObject(ADODB.RecordSet)DBCon.Open = Provider=MSDAORA.Oracle;User ID=&_DBUserName&;Data Source=(description =(address = (protocol = tcp)(host= &_DBHostAddress &)(port = &_DBServerPort&)(connect_data =(sid = &_DBSid&);Password=&_D

40、BPassWord&DBRec.OPEN sqlText,DBConDBRec.OPEN commit,DBConDBCon.CloseSet DBCon =NothingSet DBRec = NothingEnd Sub*设计说明:调用存储过程,不依赖ORAOLEDB组件的使用,不用创建数据源,不用配置连接串程序输入: 要执行的存储过程名 数据库用户名 数据库主机的域名或IP 数据库主机的端口 数据库实例SID 数据库用户的密码程序输出:无设计人员: LIUYI027设计时间:2009-09-26调用举例:CallRunProcedure(gbsjob.job_package.gbs_jo

41、b4,pub_test,2,1562,gs30gbs,test2012)*SubRunProcedure(procName,DBUserName,DBHostAddress,DBServerPort,DBSid,DBPassWord)Set DBCon = CreateObject(ADODB.Connection)Set DBRec = CreateObject(ADODB.RecordSet)Set DBcom = CreateObject(ADODB.Command)DBCon.Open = Provider=MSDAORA.Oracle;User ID=&_DBUse

42、rName&;Data Source=(description =(address = (protocol = tcp)(host= &_DBHostAddress&)(port = &_DBServerPort&)(connect_data =(sid = &_DBSid&);Password=&_DBPassWord&DBcom.ActiveConnection = DBConDBcom.CommandType = 4DBcom.CommandText = procNameDBcom.ExecuteDBcom.CommandText = commitDBcom.ExecuteDBCon.closeSet DBcom = NothingSet DBCon =NothingSet DBRec = NothingEnd Sub*设计说明:用于将EXCEL中某个SHEET单独C

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论