ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:24.03KB ,
资源ID:9968982      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9968982.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(QTP非常实用的函数.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

QTP非常实用的函数.docx

1、QTP非常实用的函数QTPDTParameter对象指的是运行时DataTable Sheet中的列对象。注意:所有应用于DTParameter对象的方法仅适用于run-time DataTable对象。所有对run-time DataTable对象的改变只影响测试结果,不影响design-time Data Table。1.PropertyName描述返回run-time Data Table的列名。语法DTParameter.Name示例下面的例子使用“Name”方法返回run-time Data Table中新创建的列的名称,并将列名写入Report。Dim paramnameparam

2、name = DataTable.LocalSheet.AddParameter(Food, pizza).NameReporter.ReportEvent 1, The New Parameter name is, paramnameRawValue描述获取当前行指定列所对应的单元格的原始数据。原始数据是尚未计算处理过的数据,如单元格中的公式内容等。语法DTParameter.RawValue本语法与DataTable.RawValueParameterID,SheetID用途是一样的,但是使用方法不同。示例下面的例子使用RawValue属性来获取run-time Data Table的“A

3、ctionA”表“Date”列的当前行所对应的单元格中的公式。本例中的返回值应该是“Now()“。FormulaVal=DataTable.GetSheet(ActionA).GetParameter(Date).RawValueValue 描述这个属性是列对象的默认属性。获取或设置列的当前行所对应的单元格的数据。注意:这个方法返回的数据是计算后的数据。假如单元格中包括公式,则这个方法返回True或False。语法获取单元格数据:DTParameter.Value or DTParameter设置单元格数据:DTParameter.Value=newvalueor DTParameter=ne

4、wvalue示例下面的例子使用Value来设置Sheet“ActionA”的“Destination”列的当前行所对应的单元格的数据。DataTable.GetSheet(ActionA).GetParameter(Destination).Value=New York注意:可以省略本语句中的“Value”,因为Value是DTParameter的默认属性。ValueByRow描述获取指定列指定行所对应的单元格的数据。语法DTParameter.ValueByRow(RowNum)ArgumentTypeDescrptionRowNumNumber指定行号。行号从1开始。示例下面的例子使用“V

5、alueByRow”来获得表“ActionA”的“Destination”列的第4行数据。DataTable.GetSheet(ActionA).GetParameter(Destination).ValueByRow(4)1.GetCellData函数 作用:获取单元格的值例:rowCount = Browser(xxx ).Page(xxx ).Frame(xxx).WebTable(xxx).RowCountFor counter = 1 To rowCounttext = Browser(xxx).Page(xxx).Frame(xxx).WebTable(xxx).GetCellDa

6、ta(counter,1)If (text = xxx) Then counter = counter - 1 selectNO = # & counter Browser(xxx).Page(xxx).Frame(xxx).WebRadioGroup(xxx).Select selectNO Exit ForEnd IfNext2.把值插入datatable里例: datatable.setcurrentrow(i) datatable.value(name,Global)=name datatable.value(passwd,Global)=passwd3.用代码来启动浏览器Browse

7、r1 = IEStartURL = IF Browser1 = IE THEN set IE = CreateObject(InternetExplorer.Application) IE.Visible = true IE.Navigate StartURLEND IF4.ExecuteFile函数作用:ExecuteFile 可以直接执行vbs文件,而不需要将其导入resource中 ExecuteFile FileName 说明:where FileName is the absolute or relative path of your VBscrpt file.例:ExecuteFi

8、le(F:test.vbs)5.Strcomp函数 作用:比较文本例:dim strtext1,strtext2,str ,str1,comp1 strtext1 = xxx strtext2 = xxx str = VbWindow(xxx).VbWindow(xxx).VbLabe1(xxx).GetTOProperty(text) str1= VbWindow(xxx).VbWindow(xxx).VbLabel(xxx).GetTOProperty(text) comp1=strcomp(strtext1,str,0) Ifcomp=0 Then msgbox “这两个串相等” els

9、e msgbox str End If 6.CaptureBitmap 作用:捕获屏幕7. GetROProperty作用:取对象属性值例:VbWindow(xxx).VbWindow(xxx).VbWindow(xxx).ActiveX(xxx).GetROProperty(TextMatrix(1,0)8.ExitAction - 退出当前操作,无论其循环属性如何。ExitActionIteration - 退出操作的当前循环。ExitRun - 退出测试,无论其循环属性如何。ExitGlobalIteration - 退出当前全局循环。9.如何使用Excel对象处理数据?Dim xl打开

10、excel文件Function OpenExcelFile(strFilePath)Set xl = CreateObject(Excel.Application)xl.Workbooks.Open strFilePathEnd Function获得指定单元格数据Function GetCellData(strSheet,rwIndex,colIndex)GetCellData = xl.WorkSheets(strSheet).Cells(rwIndex,colIndex)End Function填充单元格数据Function PutCellData(strSheet,rwIndex,col

11、Index,varData)xl.WorkSheets(strSheet).Cells(rwIndex,colIndex) = varDataEnd Function保存并推出Function SaveAndQuit()xl.Activeworkbook.savexl.QuitSet xl = nothingEnd Function10.连接sql数据库例:Dim res,cmd,sql Set Res=createobject(adodb.recordset) Set Cmd=createobject(mand) Cmd.activeconnection=Provider=SQLOLEDB.

12、1;Password=111111;Persist Security Info=True;User ID=sa;Initial Catalog=xhq;Data Source=192.168.191.142这句话是连接数据库的数据源,要做修改 Cmd.CommandType = 1 sql=selec t * from 表 where name=username Cmd.CommandText = sql Set res = Cmd.Execute() Set res = nothing Set cmd.ActiveConnection = nothingSet Cmd= nothing11

13、检查页面是否存在对象exist可以检查某一个页面是否存在。代码:if Browser().Page(“).Exist then在运行结果中显示的报告, “micPass”的状态是通过, micFail是不通过 reporter.ReportEvent micPass ,“页面存在“,”通过“ else reporter.ReportEvent micFail ,页面不存在“,不通过end if12 防止程序中断的方法在回放脚本的时候,有时因为错误导致运行的脚本中断,不能自动运行。为了能达到真正无人职守的状态可以在脚本的最前面加上如下的代码:On error resume next 遇到错误返回

14、到脚本的下一行继续执行。On error goto 0 错误处理的控制权,平时是由QTP控制的(这个叫默认的),当有on error resume next 时,是交给on error处理,当on error goto 0时,就换给QTP13 同步点的设定等待某一对象出现后继续执行,为了防止qtp找不到对象而设定同步点。有2种方法:1种是用wait加等待的时间,如wait 5(qtp等待5秒钟后继续执行)。另一种方法是等待要执行对象的出现,如果出现就继续执行,否则一直等待,代码如下:y=.waitproperty(visible,true,10000)If y=true then 执行下一条语

15、句 else 对象不出现就一直等待,直到过了10000秒后程序找不到对象报错End if14 截屏在优化脚本时,如果想查看某一页面在执行后的页面效果,可以采取截屏的办法截取当前的操作页面并保存到本地。代码: desktop. capturebitmap “c:*.bmp“,ture 在脚本中想要查看的一行插入,运行后图片保存到设置的路径下15 导入execl文件并参数化数据方法Qtp自带了datatable表,可以把要参数化的数据写在里面,但这样写脚本和数据不能分离,后期不好维护脚本。现在采用从外部导入execl文件的方法导入数据。代码如下: datatable.ImportSheet “D:

16、.data.xls”,“sheet1”,“global“ 第一个参数是要导入文件的路径,第二个是execl的第一个表格,第三个参数是在execl的全局范围内查找 另外datatable对象还有很多操作,比如:获取表中字段的行数,插入表数据,删除数据等,下面是获取表中数据的代码:datatable(A,dtglobalsheet)16 为描述性编程自动创建注释 当希望在每一个新建action时都增加一些头部说明,比如作者、创建日期、说明等信息,那么用action template 来实现最简单快捷。 方法:用记事本等文本编辑器,输入如下类似的内容: Company:东方般若 Date: Date

17、 然后将文件保存为ActionTemplate.mst,并存放到QTP安装目录下的dat目录。17 导入vbs文件想要实现脚本的函数化,并更好的维护它,可以把一些公用的函数写到vbs里面,用qtp来调用它。实现调用vbs的方法有2种:1.函数executefile加vbs文件的路径 executefile “c:.funcation.vbs”2.设置QTP test/settings/resources/+函数目录18 时间差函数统计两个日期时间段之间的间隔,还有多少小时Dim timedifftimediff=datediff(“H”,now,“2008-8-8” )Print timedi

18、ff19 获取web下拉框中数据的行数和数据值1.获取行数:首先将webtable添加到对象库中,查看对象库里有该webtable的属性后count=Browser().Page(Page).Frame().WebTable(.).RowCount Msgbox count 查看行数2.获取数据值, for i=1 to countvalue=Browser().Page(Page).Frame().WebTable(.).getcelldata(i,1) msgbox value next获取到列表中的数值后,qtp的对象库中没有这个WebElement的对象,一般采用描述性编程的方法获取对

19、象,比如:用getcelldata获取的表中数据的innertext属性是“普通岗”,那么就可以用如下代码:for i=1 to count value=Browser().Page(Page).Frame().WebTable(.).getcelldata(i,1) Browser(“”).Page(“Page”).Frame(“”). WebElement(“innertext:=“&value,”index:=1”).clicknext20 对象获得焦点判断某个webedit输入框是否获取了焦点,如果没有获取就给它焦点,然后输入数值。代码如下:if not browser(*).page

20、(“*).webedit(“*).object.isdisabled then .object.focus .object.set 输入数值“21 获取对象当前属性值用GetROProperty可以获取对象的当前属性值,比如一些对象的属性经常发生变化,用getroproterty就能定位对象当前的属性状态来执行相应的操作。Dim propro= browser(*).page(“*).webedit(“ *“). GetROProperty(“property”,value)Msgbox pro 弹出窗口,查看获取的属性。22 Systemutil对象的应用利用systemutil可以实现的功

21、能:回放qtp脚本时禁止鼠标和键盘的输入;打开应用程序或web;通过句柄关闭进程;通过进程名关闭进程等。下面的代码是打开XX网页: systemutil.run “iexplore.exe”,“”,“”,“”,“”,3 打开XX的首页,最后面的参数“3” 代表打开ie后最大化 SystemUtil.CloseProcessByName(“iexplore.exe”) 关闭ie23 Action的使用action分为内部调用和外部调用2种方法:内部调用使用split划分;外部调用时被调用的action设置成share,并共享对象库。 split action:RunAction action,

22、oneIteration24. 随机数在测试中有时会用到随即数,有多种方法:第一种 :n=randomnumber.value(1,255) n的值从1到255之间随即产生第二种 :randomize 更新反回的数据 dim n n=int (10*rnd() msgbox n n为10以内的整数25 “is+*”类型功能 isarray是否是数组 isconnected判断QTP是否连接到TD isdate是否是合法的日期类型 isempty判断是否初始化 isNull判断是否为空值 isNumeric判断是否是数字型 isobject判断是否一个功能对象 isready判断设备是否准备就绪

23、 isRootFolder是否是根目录26 对象库打开对象库resources-object repository,或者用快捷方式:ctrl+r来打开。1.Qtp中的对象库和脚本是一一对应的,如果脚本中某个对象在对象库中不存在,则无法回放成功,会提示找不到对象。2.对无法识别的对象用spy工具获得后添加到对象库中。3.有时候脚本回放失败就是找不到对象的原因,可以通过用spy工具查看找不到对象的属性,然后打开对象库,比较二者的属性信息,如果属性有不相同的说明就是属性的原因,可以通过更改属性的方式统一对象属性。27 调试脚本1.脚本编写完毕,可以用按ctrl+f7来查看脚本是否有语法错误。2. M

24、sgbox和print:在回放脚本时可以方便的查看自己想看到的信息。3.设置断点:为了测试某一小段脚本的功能,而当整个action很长的时候,可以设置断点单步debug。28 强制退出遇到问题退出可以用exittest或 exit for,例如下面代码:Public function text_exit() for i=0 to 10 if i=3 then exittest exit for end if nextEnd functionText_exit()29 连接数据库_增删改Dim conn,strSql 定义变量set conn = CreateObject(ADODB.Conne

25、ction) 创建连接conn.ConnectionString=Provider=SQLOLEDB.1;Password=isaac121379;Persist Security Info=True;User ID=sa;Initial Catalog=WisdomCRM;Data source=192.168.12.29 设置连接字符串conn.open 开启连接strSql=insert into UM_User values(1,UserID) 设置插入语句strSql=drop table TM_Task_14_TargetstrSql=select * from UM_UserIf

26、 conn.state=0 Then 如果连接状态为0,表示连接失败,写入reporter对象中,否则表示连接成功 Reporter.ReportEvent micFail,testing,数据库连接失败 conn.close Set conn = nothingelse Reporter.ReportEvent micPass,testing,数据库连接成功 conn.execute strSql 执行更新语句 conn.close Set conn = nothingEnd If30 连接数据库_查Dim conn,res,strSql 定义变量set conn = CreateObjec

27、t(ADODB.Connection) 创建连接conn.ConnectionString=Provider=SQLOLEDB.1;Password=isaac121379;Persist Security Info=True;User ID=sa;Initial Catalog=WisdomCRM;Data source=192.168.12.29 设置连接字符串conn.open 开启连接Set res = CreateObject(ADODB.RecordSet) 创建一个记录集对象strSql=select * from UM_User 设置查询雨具If conn.state=0 Th

28、en 如果连接状态为0,表示连接失败,写入reporter对象中,否则表示连接成功 Reporter.ReportEvent micFail,testing,数据库连接失败 res.close 关闭结果集和连接,并且置为空 Set res = nothing conn.close Set conn = nothingelse Reporter.ReportEvent micPass,testing,数据库连接成功 res.open strSql,conn 执行查询语句 res.MoveFirst 将记录集游标指到记录集的最开始 Do Reporter.ReportEvent micPass,file,cstr(res(0)+ : +cstr(res(1) 循环遍历查询结果,并且保持到reproter对象中,直到记录集到达末尾,循环结束

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1