QTP非典型操作集.docx

上传人:b****4 文档编号:5196839 上传时间:2022-12-13 格式:DOCX 页数:59 大小:47.21KB
下载 相关 举报
QTP非典型操作集.docx_第1页
第1页 / 共59页
QTP非典型操作集.docx_第2页
第2页 / 共59页
QTP非典型操作集.docx_第3页
第3页 / 共59页
QTP非典型操作集.docx_第4页
第4页 / 共59页
QTP非典型操作集.docx_第5页
第5页 / 共59页
点击查看更多>>
下载资源
资源描述

QTP非典型操作集.docx

《QTP非典型操作集.docx》由会员分享,可在线阅读,更多相关《QTP非典型操作集.docx(59页珍藏版)》请在冰豆网上搜索。

QTP非典型操作集.docx

QTP非典型操作集

关键字驱动原理及特点

1.关键字驱动测试是数据驱动测试的一种改进类型

2.主要关键字包括三类:

被操作对象(Item)、操作(Operation)和值(value),用面向对象形式可将其表现为Item.Operation(Value)

3.将测试逻辑按照这些关键字进行分解,形成数据文件。

4.用关键字的形式将测试逻辑封装在数据文件中,测试工具只要能够解释这些关键字即可对其应用自动化

关于onerrorgoto0

OnErrorGoTo0

表示禁止当前过程中任何已启动的错误处理程序。

OnErrorResumeNext

说明当一个运行时错误发生时,控件转到紧接着发生错误的语句之后的语句,并在此继续运行。

访问对象时要使用这种形式而不使用OnErrorGoTo。

OnErrorGoToline

启动错误处理程序,且该例程从必要的line参数中指定的line开始。

line参数可以是任何行标签或行号。

如果发生一个运行时错误,则控件会跳到line,激活错误处理程序。

指定的line必须在一个过程中,这个过程与OnError语句相同;否则会发生编译时间错误。

以上MSDN上的解释

一般情况下,如果在对我们创建的对象或控件进行错误捕捉,需要使用OnErrorResumeNext,然后在判断它的Err.Number,根据错误类型来做相应的处理。

操作数据库

为了更精确地跟踪数据,要用RecordSet组件创建包含数据的游标,游标就是储存在内存中的数据。

rs=Server.CreateObject("ADODB.RecordSet")

rs.Open(sqlStr,conn,1,A)

注:

A=1读取

A=3新增、修改、删除

在RecordSet组件中,常用的属性和方法有:

rs.Fields.Count:

RecordSet对象的字段数。

rs(i).Name:

第i个字段的名称,i为0至rs.Fields.Count-1

rs(i):

第i个字段的数据,i为0至rs.Fields.Count-1

rs("字段名"):

指定字段的数据。

rs.Record.Count:

游标中的数据记录总数。

rs.EOF:

是否最后一条记录。

rs.MoveFirst:

指向第一条记录。

rs.MoveLast:

指向最后一条记录。

rs.MovePrev:

指向上一条记录。

rs.MoveNext:

指向下一条记录。

rs.GetRows:

将数据放入数组中。

rs.Properties.Count:

ADO的ResultSet或Connection的属性个数。

rs.Properties(item).Name:

ADO的ResultSet或Connection的名称。

rs.Properties:

ADO的ResultSet或Connection的值。

rs.close():

关闭连接。

关于动态数组的定义

做了一个试验

ReDimX(2,2)

b=1

a=3

ReDimX(a,b)

当有preserve时,只能更改最后一维的大小

当没有preserve时,a,b的值都可以更改!

QTP操作数据库方法

1.Qtp连接Sql2003

SetConn=CreateObject("ADODB.Connection")

str="DRIVER=SQLServer;SERVER=192.168.1.109;UID=wangshaoping;PWD=wsp;APP=MicrosoftOffice2003;WSID=wangshaoping;DATABASE=test_data"

Conn.openstr

SetRs=CreateObject("ADODB.Recordset")

'Setcomm=createobject("ADODB.Command")

sql="select*fromabnormity_datawherename_yc='yejian(00003)'"

Rs.opensql,conn,1,3

i=rs.RecordCount

'

'comm.CommandText=sql

'comm.ActiveConnection=Conn

'SetRs=comm.Execute

'

msgboxrs.Fields.Count

arrTemp=Rs.GetRows()

forj=0toi-1

msgboxarrTemp(0,j)&arrTemp(1,j)&arrTemp(2,j)&arrTemp(3,j)

next

Rs.Close

SetRs=Nothing

Conn.Close

SetConn=Nothing

2.QTP插入数据库检查点,手动指定SQL语句的写法。

一、SQLServer格式

(本地无需安装SQLServer)

connectionstring(连接字符串):

1.本地没有创建数据源的方式

DRIVER=SQLServer;SERVER=数据库IP地址;UID=用户名;PWD=密码;APP=MicrosoftOffice2003;WSID=本地主机名;DATABASE=数据库名

实例:

DRIVER=SQLServer;SERVER=10.160.11.10;UID=sa;PWD=sa;APP=MicrosoftOffice2003;WSID=RJHLJUN;DATABASE=dcwork

2.本地已创建数据源的方式

DSN=数据源名称;UID=用户名;PWD=密码;APP=MicrosoftOffice2003;WSID=数据库的主机名;DATABASE=数据库名

实例:

DSN=LocalServer;UID=sa;PWD=sa;APP=MicrosoftOffice2003;WSID=RJDCWORKTEST;DATABASE=dcwork

3.SQL语句实例(从数据库表HR_LANGUAGE_TYPE中,查询字段语言名称LANGUAGE_NAME,条件语言名称=中文,按语言名称升序排序结果)

source(SQL语句):

SELECTHR_LANGUAGE_TYPE.LANGUAGE_NAMEFROMdcwork.dbo.HR_LANGUAGE_TYPEHR_LANGUAGE_TYPEWHERE(HR_LANGUAGE_TYPE.LANGUAGE_NAME='中文')ORDERBYHR_LANGUAGE_TYPE.LANGUAGE_NAME

二、DB2格式

(本地至少安装DB2Run-TimeClientLite)

connectionstring(连接字符串):

1.本地没有创建数据源的方式

DRIVER={IBMDB2ODBCDRIVER};UID=用户名;PWD=密码;MODE=SHARE;DBALIAS=数据库名;

实例:

DRIVER={IBMDB2ODBCDRIVER};UID=db2admin;PWD=db2admin;MODE=SHARE;DBALIAS=DCWORK;

2.本地已创建数据源的方式

DSN=数据源名称;UID=用户名;PWD=密码;MODE=SHARE;DBALIAS=DCWORK;

实例:

DSN=DWCORKDB2;UID=db2admin;PWD=db2admin;MODE=SHARE;DBALIAS=DCWORK;

3.SQL语句实例

source:

SQL语句

SELECTHR_LANGUAGE_TYPE.LANGUAGE_NAMEFROMDB2ADMIN.HR_LANGUAGE_TYPEHR_LANGUAGE_TYPEWHERE(HR_LANGUAGE_TYPE.LANGUAGE_NAME='中文')ORDERBYHR_LANGUAGE_TYPE.LANGUAGE_NAME

三、Oracle格式

(本地需要安装OracleODBCDRIVER)

connectionstring(连接字符串):

1.本地没有创建数据源的方式

DRIVER={OracleinOraHome92};SERVER=数据库服务名;UID=用户名;PWD=密码;DBQ=数据库名;DBA=W;APA=T;EXC=F;XSM=Default;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;GDE=F;FRL=Lo;BAM=IfAllSuccessful;MTS=F;MDI=Me;CSR=F;FWC=F;PFC=10;TLO=O;

实例:

DRIVER={OracleinOraHome92};SERVER=DCWORK;UID=DCWORK;PWD=DCWORK;DBQ=DCWORK;DBA=W;APA=T;EXC=F;XSM=Default;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;GDE=F;FRL=Lo;BAM=IfAllSuccessful;MTS=F;MDI=Me;CSR=F;FWC=F;PFC=10;TLO=O;

2.本地已创建数据源的方式

DSN=数据源名称;UID=用户名;PWD=密码;DBQ=数据库名;DBA=W;APA=T;EXC=F;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;GDE=F;FRL=F;BAM=IfAllSuccessful;MTS=F;MDI=F;CSR=F;FWC=F;PFC=10;TLO=0;

实例:

DSN=dcworkoracle;UID=DCWORK;DBQ=DCWORK;DBA=W;APA=T;EXC=F;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;GDE=F;FRL=F;BAM=IfAllSuccessful;MTS=F;MDI=F;CSR=F;FWC=F;PFC=10;TLO=0;

3.SQL语句实例

source:

SQL语句

SELECTHR_LANGUAGE_TYPE.LANGUAGE_NAMEFROMDCWORK.HR_LANGUAGE_TYPEHR_LANGUAGE_TYPEWHERE(HR_LANGUAGE_TYPE.LANGUAGE_NAME='中文')ORDERBYHR_LANGUAGE_TYPE.LANGUAGE_NAME

四,mysql

SetConn=CreateObject("ADODB.Connection")

str="DRIVER={MySQLODBC3.51Driver};SERVER=192.168.1.100;DATABASE=wp_blog;userid=zzz;password=123456"

Conn.openstr

SetRs=CreateObject("ADODB.Recordset")

sql="select*from`wp_blog`.`blg_webcategory`limit0,5000;"'(分页查询)

Rs.opensql,conn,1,3

If(notRs.eof)then

Rs.MoveFirst

MsgBoxRs(0)

MsgBoxRs

(1)

MsgBoxRs

(2)

MsgBoxRs(3)

endif

Rs.Close

SetRs=Nothing

Conn.Close

SetConn=Nothing

用vbs取Mysql中文出现乱码

sConnection="DRIVER={MySQLODBC3.51Driver};SERVER=localhost;DATABASE=code52_lib;UID=root;PASSWORD=123456;OPTION=3;Stmt=SetNames'GBK'"

五,Access

SetConn=CreateObject("ADODB.Connection")

str="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=c:

/db1.mdb"

Conn.openstr

SetRs=CreateObject("ADODB.Recordset")

56.*.xml

Environment.LoadFromFile"D:

\新建文件夹\a.xml"

Browser("XX一下,你就知道").Page("XX一下,你就知道").WebEdit("wd").SetEnvironment("HuiYuanB")

用childItem获取单元格中的链接对象

WebTable对象中的ChildItem方法用于获取单元格中的测试对象,例如下面的脚本首先获取WebTable对象,然后通过ChildItem获取指定单元格中的链接对象,并单击该链接:

''获取WebTable对象

SetobjTable=Browser("WebSite").Page("WebSite").WebTable("WebSite")

intRow=2

intCol=2

''通过ChildItem获取单元格中的链接对象

SetobjLink=objTable.ChildItem(intRow,intCol,"Link",0)'introw:

所在行,intcol:

所在列,“link”所要找的类型,0:

index号

''单击链接

objLink.click

'如果想确定一个单元格类有多少个相同有类型的

msgboxobjTable.ChildItemCount(intRow,intCol,"Link")

随机选取webtable里checkbox

这里只写几句重要的,首先读取webtable的行数,然后,随机产生一个数,从这个数一直到webtable的行数为止.

Randomize

LoopCounter=int(webNum*Rnd)

Fori=1toLoopCounter'loopcounter是webtable的行数.

setchkbox=Browser("Browser").Page("***").WebTable("收集").ChildItem(i,1,"WebCheckBox",0)

chkbox.set"ON"'勾选上checkbox

Next

获取文档的当前路径

利用wsh获取文档的当前路径

DimWshShell

SetWshShell=WScript.CreateObject("WScript.Shell")

s=WshShell.CurrentDirectory

MsgBoxs

用vbs获取文档的当前路径

SetobjFSO=CreateObject("Scripting.FileSystemObject")

SetobjFile=objFSO.GetFile(wscript.scriptfullname)

s=objFSO.GetParentFolderName(objFile)

关于cscript与Wscript之间的区别

WSH提供了两个用于执行脚本的接口,一个用于命令行,一个用于Windows环境。

这两个接口各使用不同的宿主程序作为VBScript引擎:

●cscript.exe:

用于在命令行中运行脚本

●wscript.exe:

用于在Windows环境中运行脚本

之所以有两个宿主程序,是因为cscript.exe被设计为从控制台窗口启动(一般来说是Windows中的MS-DOS窗口),而wscript.exe则用于直接与WindowsGUI进行交互。

这两者就功能来讲几乎没有区别。

判断一个目录中有没有所要的目录,如果没有就创建一个

dimfs,s

setfs=WScript.CreateObject("Scripting.FileSystemObject")

if(fs.FolderExists("C:

\temp"))then

s="isavailable"

MsgBoxs

else

s="notexist"

MsgBoxs

setfoldr=fs.createfolder("c:

\temp")

endif

关于vbs的数据类型

Vbs中唯一的数据类型---variant

variant是vbs中所有函数的返回值的数据类型!

variant分为数字字符串

Variant包含的子数据类型

empty未初始化的variant,对数值变量,值为'0',对字符串变量,值为0长度字符串('').

Null不包含任何数据的viariant.

boolean值只能是true或false

byte包含0~255之间的整数

integer包含-32768~32767之间的整数

currency包含-922337203685477~922377203685477.5807之间的数字

long包含-2147483648~2147483647之间的整数

single包含单精度浮点数,负数范围从-3.402823E38~-1.401298E~45,正数范围从1.401298E~45~3.402823E38.

double包含双精度浮点数,负数范围从-1.79769313486232E308~-4.94065645841247E~324,正数范围从4.94065645841247W~324~1.79769313486232E308

date包含表示日期的数字,日期范围为公元100年1月1日~公元9999年12月31日

string字符串,最大字符串长度为20亿个字符

object对象子变量

error包含错误编号

您可以使用转换函数来转换数据的子类型。

另外,可使用VarType函数返回数据的Variant子类型。

TypeName函数返回数据类型名,如:

integer()

varType返回值对应表

vbEmpty0Empty(未初始化)

vbNull1Null(无有效数据)

vbInteger2整数

vbLong3长整数

vbSingle4单精度浮点数

vbDouble5双精度浮点数

vbCurrency6货币

vbDate7日期

vbString8字符串

vbObject9Automation对象

vbError10错误

vbBoolean11Boolean

vbVariant12Variant(只和变量数组一起使用)

vbDataObject13数据访问对象

vbDecimal14十进制值

vbByte17字节

vbUserDefinedType36包含用户定义的类型的变量

vbArray8192数组

获取当前日期时间

2009年4月21日星期二14:

17

GetCurrentDate=FormatDateTime(Date,1)&FormatDateTime(time,4)

2009-4-2114:

17:

51

GetCurrentDate=FormatDateTime(Date)&FormatDateTime(time,3)与FormatDateTime(Date,0)&FormatDateTime(time)是相同的结果

对数字进行处理

formatNumber,formatPercent

猜随机数

DimGuess,RndNum

RndNum=Int((100)*Rnd

(1)+1)

Guess=CInt(InputBox("Enteryourguess:

",,0))

Do

IfEval("Guess=RndNum")Then

MsgBox"Congratulations!

Youguessedit!

"

Else

Guess=CInt(InputBox("Sorry!

Tryagain.",,0))

EndIf

LoopUntilGuess=0

Print的用法

1.在测试中我们使用QTP调试脚本的时候一般就是DEBUG或者MSGBOX察看一些信息,其实有时候也可以使用print来实现批量的察看信息但是不影响程序运行.

运行脚本:

a="100"

printa

取datatable特定行的数据可以这样使用

运行脚本:

DataTable.GetSheet("Action1").GetParameter("test").ValueByRow(4)

Wait精确到毫秒

WaitSeconds[,Milliseconds]可以精确到毫秒.

数组作为返回值的操作

4.在自定义的function里面数组作为返回值.

运行脚本:

circuit="399937"

FunctiontrimString(circuit)

DimholdArray(5)

holdArray(0)=Left(circuit,2)

holdArray

(1)=Right(circuit,2)

msgboxholdArray(0)'showed39

trimString=holdArray'Igetanoutofrangeerrorhere

EndFunction

dimmyArray

'hereIwanttoassignthereturnarraytoanotherarray

myArray=trimString(circuit)

'andthencalloneelementfromit

msgboxmyArray

(1)

计算一个操作的时间.

运行脚本:

Browser("Browser").Page("Page").Image("getRates").Click

var_StartTime=Timer

Browser("Browser").Page("Page").Sync

Browser("Browser").Page("Page").CheckCheckPoint("Check1")

var_EndTime=Timer

intRespTime=round((var_EndTime-var_StartTime),2)

msgbox(intRespTime)

取得指定sheet(datatable)的行数和列数(也可以理解为参数个数)

paramcount=DataTable.GetSheet("Action1").GetParameterCount

msgbox"Thereare"¶mcount&"columnsinthedatasheet."

rowcount=DataTable.GetSheet("Action1").GetRowCount

msgbox"Thereare"&rowcount&"rowsinthedatasheet."

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

当前位置:首页 > 工程科技 > 建筑土木

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

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