QTP常用函数大全.docx

上传人:b****5 文档编号:6346957 上传时间:2023-01-05 格式:DOCX 页数:22 大小:128.14KB
下载 相关 举报
QTP常用函数大全.docx_第1页
第1页 / 共22页
QTP常用函数大全.docx_第2页
第2页 / 共22页
QTP常用函数大全.docx_第3页
第3页 / 共22页
QTP常用函数大全.docx_第4页
第4页 / 共22页
QTP常用函数大全.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

QTP常用函数大全.docx

《QTP常用函数大全.docx》由会员分享,可在线阅读,更多相关《QTP常用函数大全.docx(22页珍藏版)》请在冰豆网上搜索。

QTP常用函数大全.docx

QTP常用函数大全

Qtp

1.富文本框对象的识别代码

Browser("欢迎登录北京市城乡建设局办公自动化系统!

").Page("欢迎登录北京市城乡建设局办公自动化系统!

").Frame("Frame").WebElement("WebElement").Object.insertAdjacentText"afterBegin","你想要大是大非写的东西"

2.获取页面所有多选框(其他对象同理):

DimoWebChkDesc

SetoWebChkDesc=Description.Create

oWebChkDesc("micclass").value="WebCheckBox"

oWebChkDesc("htmltag").Value="INPUT"

'获取所有匹配描述的对象

DimallCheck,oCheckBox

SetallCheck=Browser("WebTours").Page("WebTours").ChildObjects(oWebChkDesc)

Fori=0toallCheck.Count-1

    SetoCheckBox=allCheck(i)

    oCheckBox.Set"ON"

Next

3.设置对象

Setobjecta=Browser("欢迎登录北京市城乡建设局办公自动化系统!

").Page("登录").Image("login_input")

4.相对路径

Browser("登录").Dialog("选择文件").WinEdit("文件名(N):

").SetPathFinder.Locate("..\党组审批单\中标通知书33.doc")'

5.键盘操作

setos=CreateoBject("wscript.shell")

wait

(2)

os.sendkeys"{tab}"

wait

(2)

os.sendkeys"{tab}"

wait

(2)

os.sendkeys"{tab}"

wait

(2)

os.sendkeys""

6.QTP10的破解方法与之前版本类似!

1、从HP官方网上下载QTP10.0并安装。

2、安装成功后,在C:

\ProgramFiles\CommonFiles\MercuryInteractive下创建文件夹:

LicenseManager

3、将破解工具mgn-mqt82.exe复制到C:

\ProgramFiles\HP\QuickTestProfessional\bin下。

4、运行mgn-mqt82.exe,ok,关闭。

5、用记事本打开LicenseManager下的lservrc文件,将第一行#前的代码Copy。

6、将代码复制到license向导中的license输入的地方,点击完成就可以了。

恭喜成功了!

需要安装:

QTP_00626.exe才能调试

7.安装qtp10的补丁QTP_00626.exe才能进行调试工具debugger的安装

8.函数:

Functionlogin(username,password)

Browser("欢迎登录北京市城乡建设局办公自动化系统!

").Navigate"http:

//192.168.100.6:

8080/OA/login.jsp"

Browser("欢迎登录北京市城乡建设局办公自动化系统!

").Page("登录").WebEdit("accountName").Setusername

Browser("欢迎登录北京市城乡建设局办公自动化系统!

").Page("登录").WebEdit("passWord").Setpassword

Browser("欢迎登录北京市城乡建设局办公自动化系统!

").Page("登录").Image("login_input").Click

EndFunction

calllogin("liuyuwei","1")

9.打印变量:

msgbox(title)

10.得到动态值:

Browser("oa").Page("oa").Frame("mainFrame_5").WebTable("请示标题").GetROProperty("text")

11.取出对象数量

setdesc=Description.Create

desc("micclass").Value="WebElement"

ocount=Browser("oa").Page("oa").Frame("mainFrame_4").ChildObjects(desc).count'取出webelement数量

msgbox(ocount)

setobj1=Browser("oa").Page("oa").Frame("mainFrame_4")

fori=0toocount-1

text=obj1.GetROProperty("innertext")

Printtext'打印所有WebElement的innertext

msgbox(text)

Next

12.读写excel

DataTable.ImportSheetPathFinder.Locate("..\施工图审查备案审批配置\施工图审查备案审批配置1.xls"),"sheet3","施工图审查备案审批配置"

Dimi,RowCount'定义变量

i=0'赋初值

Rowcount=DataTable.GetSheet("施工图审查备案审批配置").GetRowCount'主程序调用时使用

'Rowcount=DataTable.GetSheet("表单管理").GetRowCount'该脚本单独执行时使用

DoWhile(i

i=i+1

DataTable.SetCurrentRow(i)

Browser("北京市建设行业信息化系统").Page("北京市建设行业信息化系统").Frame("mainframe_4").WebButton("新增审批权限").Click

wait

(2)

Browser("北京市建设行业信息化系统").Page("北京市建设行业信息化系统").Frame("mainframe_7").WebList("xmszd").SelectDataTable("项目所在地",dtLocalSheet)

Browser("北京市建设行业信息化系统").Page("北京市建设行业信息化系统").Frame("mainframe_7").WebList("xmtzr").SelectDataTable("项目投资人",dtLocalSheet)

Browser("北京市建设行业信息化系统").Page("北京市建设行业信息化系统").Frame("mainframe_7").WebList("tdyt").SelectDataTable("土地用途",dtLocalSheet)

Browser("北京市建设行业信息化系统").Page("北京市建设行业信息化系统").Frame("mainframe_7").WebList("blbm").SelectDataTable("审批部门",dtLocalSheet)

Browser("北京市建设行业信息化系统").Page("北京市建设行业信息化系统").Frame("mainframe_7").WebButton("确定").Click

wait

(1)

loop

写excel:

Functioninsertexcel(row,col,value,path,sheet)

SetExcelApp=CreateObject("Excel.Application")

SetExcelWor=ExcelApp.Workbooks.Open(path)

SetExcelShe=ExcelWor.Worksheets(sheet).UsedRange

ExcelShe.Cells(row,col)=value

ExcelApp.DisplayAlerts=True

SetExcelShe=Nothing

ExcelWor.Close(True)

ExcelApp.Quit

EndFunction

13.打开\关闭ie,比如:

SystemUtil.Run("C:

\ProgramFiles\InternetExplorer\IEXPLORE.EXE"),””

SystemUtil.CloseProcessByName("iexplore.exe")

14.利用mst(mercuryscripttemplate)生成脚本模板

新建文件ActionTemplate.mst(必须是这个名字)

用记事本打开该文件

编辑内容,如:

'======================================

'模块名称

'软件名称

'作者:

'日期:

'======================================

将该文件剪切到QTP的dat目录下

启动QTP,新建脚本时就能够看到该模板被自动应用了

15.描述性编程参数:

Browser("北京市建设行业信息化系统").Page("北京市建设行业信息化系统").Frame("mainframe").Link("text:

="&projectName,"name:

="&projectName).Click

16.增加同步点

在录制状态下,选择Insert-->SynchronizationPoint,选择要同步的对象,设置要同步的属性,我们可以对对象的Enable,visible一类表示状态的属性做同步点,生成如下脚本

  Browser("XX一下,你就知道").Page("XX一下,你就知道").WebEdit("wd").WaitProperty"visible",True,100000

这句话的意思就是在100秒的时间内,等待WebEdit这个对象的visible属性,只要它的visible属性变为true,那么就执行下面操作,最后的100000单位是毫秒,如果在100000毫秒(100秒)后还没有等到visible=true,直接执行下面操作

17.qtp连接数据库

DimStrCon

DimRes,Cmd

SetRes=CreateObject("ADODB.Recordset")

SetCmd=CreateObject("ADODB.Command")

'以下为建立连接

'StrCon="DRIVER={oracle.jdbc.driver.OracleDriver};Server=192.168.100.5;UID=dqjs4_test3;PWD=dqjs4_test3;dbq=dqjs;"

StrCon="DRIVER={OracleinOraClient10g_home1};SERVER=DQJS;UID=dqjs4_test3;PWD=dqjs4_test3;DBQ=DQJS;DBA=W;APA=T;EXC=F;XSM=Default;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;BTD=F;BAM=IfAllSuccessful;NUM=NLS;DPM=F;MTS=T;MDI=Me;CSR=F;FWC=F;FBS=60000;TLO=O;"

Cmd.activeconnection=StrCon

Cmd.CommandType=1

 

'以下为执行sql,根据实际情况替换之

Cmd.CommandText="selectHT_CODEfromHT_JBXXwhereJY_TYPE_NAME='勘察'andHT_JBXX_ID='28BEB060163C11E1B060C555E3FFBE59'"

SetRes=Cmd.Execute()

'展示结果

DowhilenotRes.eof

Msgbox(Res(0))

Res.MoveNext

Loop

'以下为关闭数据库连接

SetRes=nothing

SetCmd.activeconnection=nothing

SetCmd=nothing

18.取随机数字

Randomize

Dimcran

cran=randomnumber(0,100)

msgboxcran

 

19.随机取下拉列表

dima

a=Browser("北京市建设行业信息化系统_2").Page("提交问题-MantisBT").WebList("reproducibility").GetROProperty("itemscount")

msgboxa

randomize

Dimb

b=randomnumber(0,a-1)

msgboxb

Browser("北京市建设行业信息化系统_2").Page("提交问题-MantisBT").WebList("reproducibility").Select"#"&b

20.GetROProperty、GetTOProperty、GetTOProperties、SetTOProperty

例:

Browser("登陆").Page("登录").Frame("mainFrame").WebEdit("dispatchDoc.dispatchDocTitle").SetTOProperty"name","dispatchDoc.dispatchDocTitle"

这种方法不会修改对象库中对象的属性值,但运行时也不会报错。

GetROProperty:

得到运行时对象的值

Browser("北京市建设行业信息化系统_2").Page("提交问题-MantisBT").WebList("reproducibility").GetROProperty("itemscount")

GetTOProperty:

得到对象库里面对象的值

Browser("北京市建设行业信息化系统_2").Page("提交问题-MantisBT").WebList("reproducibility").GetTOProperty("value")

GetTOProperties:

得到所有属性的keyandvalue

seta=Browser("北京市建设行业信息化系统_2").Page("提交问题-MantisBT").WebList("reproducibility").GetTOProperties

21.回放原理

一、先根据脚本中的对象类型在对象库中查找是否存在该类型的对象。

对象类型是指在对象类型库(ObjectIdentification)中存在的类型。

二、根据脚本中对象的名称在对象库中查找是否存在该名称的对象。

三、根据对象类型库中设定的对象识别机制定位对象:

1、先根据强制属性匹配实际对象的属性值:

(1)唯一匹配,找到对象,退出识别机制;

(2)多个匹配,采用辅助属性辅助识别;

(3)不匹配,报错;

2、根据辅助属性匹配实际对象的属性值:

(1)唯一匹配,找到对象,退出识别机制;

(2)多个匹配,采用顺序标识符辅助识别;

(3)不匹配,报错;

3、根据顺序标识符匹配实际对象的顺序值:

(1)唯一匹配,找到对象,退出识别机制;

(2)多个匹配,尝试采用智能识别;

(3)不匹配,报错;

其中顺序标识符中有两种识别机制:

index:

控件数组的索引值。

location:

对象在GUI界面上的位置,遵循“先从上到下,再从左到右”的原则。

22.insertcalltoexistingaction

脚本中用到了【insertcalltoexistingaction】,修改了其中被调用的action,但发现引用的一直是旧的代码,修改无效。

刚开始不知道怎么回事,后来发现QTP中查找引用的action时是根据【options->folders】中配置的路径再拼接相对路径找到的,而之前我一直以为QTP会自动去我的test所在目录中找相对路径的action。

如果填了多个地址,QTP是会由上到下按照地址一个一个的去找

23.数组

Dimjylx()

ReDimjylx(6)

Dimlength

jylx(0)="勘察"

jylx

(1)="设计"

jylx

(2)="审查"

jylx(3)="施工总承包"

jylx(4)="监理"

jylx(5)="质量检测"

jylx(6)="造价咨询"

length=UBound(jylx)'返回指定数组维数的最大可用下标

selectcase

SelectCasejylx(i)

casejylx(0)

dw=kcdw

Casejylx

(1)

dw=sjdw

Casejylx

(2)

dw=scdw

Casejylx(3)

dw=sgzcbdw

Casejylx(4)

dw=jldw

Casejylx(5)

dw=zljcdw

Casejylx(6)

dw=zjzxdw

endselect

24.txt文件读取

'读取文件

ConstForReading=1,ForWriting=2,ForAppending=8

Setfso=CreateObject("Scripting.FileSystemObject")

Setopenfile=fso.OpenTextFile("C:

/test.txt",ForReading,True)

DoUntilopenfile.AtEndOfStream

str=openfile.ReadLine

a=Split(str,"",-1,1)

Fori=0toUbound(a)

Msgboxa(i)

Next

Loop

openfile.Close

Setfso=Nothing

'写文件

ConstForReading=1,ForWriting=2,ForAppending=8

Setfso=CreateObject("Scripting.FileSystemObject")

setopenfile=fso.OpenTextFile("C:

/test.txt",ForWriting,true)

Fori=1to4

openfile.WriteLine("hello")

openfile.WriteBlankLines(0)

Next

openfile.Close

Setfso=nothing

'追加

ConstForReading=1,ForWriting=2,ForAppending=8

Setfso=CreateObject("Scripting.FileSystemObject")

setopenfile=fso.OpenTextFile("C:

/test.txt",ForAppending,true)

openfile.WriteLine("helloworld")

openfile.Close

Setfso=nothing

25.验证码(扯)

DimInput

Input=InputBox("Enteryourpicno:

")

Browser("调查博客").Page("调查博客").WebEdit("ident_code").SetInput

26.action参数传递

(1)在主action中:

RunAction"Driver_TestCase",oneIteration,table,testCaseSheetName,caseName

(2)被调用action中

testCaseFile=parameter("testCaseFile")

testCaseSheetName=parameter("testCaseSheetName")

caseName=parameter("caseName")

按照顺序传递

27.(脚本中直接调用vbs文件)脚本中加载vbs文件,有类的vbs需要这样使用

ExecuteFile"..\aa\bb.vbs"

该vbs文件的格式必须是ANSI的

28.自定义环境变量

SetoReport=NewExcelReport

Environment("oReport")=oReport

通过环境变量也能传递参数

29.QTP使用外部共享对象库有2种方法

1,通过菜单Resources->AssociateRepositories,关联外部对象库到指定的Action。

2,通过RepositoriesCollection对象,在运行时灵活的加载,自动关联到当前Action。

1.加载外部对象库

2.执行脚本

3.移除加载的对象库

'Uploadobjectrepository

RepositoriesCollection.Add"../test.tsr"

'steps...........

'....................

'Removeobjectrepository

OR_Index=RepositoriesCollection.Find("../test.tsr")

RepositoriesCollection.RemoveOR_Index

30.ie8定位不了页面

SystemUtil.Run("C:

\ProgramFiles\InternetExplorer\IEXPLORE.EXE"),""

31.退出整个for循环exitfor

Fori=0to4

msgboxi

If(i=3)Then

Exitfor

EndIf

Next

32.datatable使用

'qtp的datatable里面增加一个sheet,名称为:

test

datatable.AddSheet("test")

'导入当前目录下aaa.xls的sheet到test中

datatable.ImportSheetpathfinder.Locate("..\qtptest\aaa.xls"),"sheet1","test"

'获取这个test的总行数

Rowcount=DataTable.GetSheet("test").GetRowCount

Fori=1toRowcount

'设置当前行

datatable.GetSheet

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 调查报告

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

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