文档库 最新最全的文档下载
当前位置:文档库 › QTP基础代码

QTP基础代码

QTP基础代码
QTP基础代码

生产随机数列

第一种方法 randomize'更新反回的数据

funcation rand(k,n)

n="int((k-1)*rnd+1) rand=n

end funcation

第二种方法 n="randomnumber.value(1,255)

2 当运行到表中的某一行,自动导出表中的所有数据

row=datatable.getcurrentrow

if row="5" then

datatable.export("d:\data.xml")

end if

3 参数化密码

webedit("txtpass").setsecure"sdsdf...."

如果参数化密码,可以直接在数据表中写入未加密的密码,它会自动识

别,即不用把setsecure改为set

4 如果弹出对话框就获取上面提示信息并与表中的信息对比,不统

一证明弹出的提示出错,主要用来验证 if

browser("web_name").dialog("dialog_name").exist(1) then'如果不

出现="false

error_message=browser("web_name").dialog("diaglog_name").static("用户密码错误!".getRoproperty("text")

 if error_message<>(datatable.value("error_info"))then

msgbox(error_message)

end if

browser("web_name").dialog("diaglog_name").close

end if

这里我总结了两点技巧:

一是:对于dialog中,虽然提示信息对象名称是"用户密码错误",但如

果信息对象名称是“该用户不存在”,不用更改会自动识别,我想主要

是录制第一遍时,“用户密码错误”只是让运行时能找到这个控制,而

不管它是什么内容,因为在对象仓库中,text不是决定该对象的属性

二是:如果对于提示信息比较长的,可以用mid(error_message,n,m)取

一部份特征提示信息进行验证,这样我想可以节省处理时间,又可以避

免长度以及空格等字符的处理

5 datatable.value("num")只在global形式下的一种省略形式;完

整形式是: datatable.value("num",dtlocalsheet)

-----向某一列的单元格赋值:

datatable.value("column_name",dtlocalsheet)="nanjing"

-----取得某一行具体值:

datatable.setcurrentrow(n)

msgbox(datatable.getsheet("global").getparameter("column_name").Rawvalue 或者kk=datatable.Rawvalue("column_name","action1")

----在run-time时,动态添加表格与数据

kk=datatable.addsheet("sheet_name").addparameter("column_name","value").

7 wintreeview一些操作

选择一个条目:wintreeview.select(item)'根是0

根的名称:wintreeview.getitem(0)

8 数据库检查点模块:

sub database_check

set con="createobject(""adodb.connection")

con.open "Descrīption="IBM_ODBC;DRIVER=SQL"

Server;SERVER="IBM;UID=sa;""&_

"PWD="123456;APP=Quick" Test

Pro;WSID="IBM;DATABASE=IBM_table""

'access方式:con.open "DRIVER="{Microsoft" Access Driver

(*.mdb)};DBQ="d:\test.mdb""

'Orocle方式:con.open "DRIVER="{Oracle" in

OraHome92};SERVER="CESHI;UID=CND_TEST;PWD=CND;DBQ=CESHI;DBA=W;APA=T;

EXC=F;XSM=Default;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;GDE=F;FRL=Lo;B

M=IfAllSuccessful;MTS=F;MDI=Me;CSR=F;FWC=F;PFC=10;TLO=O;"" set record="createobject(""adodb.recordset")

sql="select*from ibm_one_table"

record.open sql,con

DO

if(record("ibm_table_column")="kai")then'//查找表格中有多少kai num=num+1;

end if

record.movenext

loop until record.eof="true record.close

set record="nothing con.close

set con="nothing end sub

9 换行符

vbcr----chr(13)回车符// vblf----chr(10)换行符vbcrlf----chr(13)+chr(10)结合//type(chr(13)就相当于按了一上键盘上的enter

10 Run from step有两种方式:

在Keyword View模式会从本步骤运行到所有action结束

在expert view模式仅会将本action运行结束

11 由于对象属性原因,无法识别对象

-----对于对象属性是变化的,可以参数化/或者用正则表达式

-----报匹配多个对象错误,可以spy查看对象,添加一个该对象另一个唯一标识属性

-----有时可以删除对象的变化的属性来解决识别问题

------对于多个完全相同的对象,可以采用添加

index,location,createtime等特殊属性来识别

(index:按照程序源码,绘制对象的先后标识对象,所以与其它相同对象是相互依赖,当其它对象发生

变化后,原先的所有对象index属性要发生变化,开始是0;如

index:="0; location:根据对象的位置进行确定,从上到下,从左到右;

CreateTime:按照对象被浏览器打开的先后标识对象)

------另外换一种思维方式,采取等效的方法;比如用键盘代替鼠标或用操作系统本身特性去解决问题

12 对系统文件的操作

-------从系统的文件中获取信息及删除文件

get_file_infor("c:\she.mpg")

function get_file_infor(url)

dim fso,f

set fso="createobject(""scrīpting.filesystemobject")

set f="fso.getfile(url)"

https://www.wendangku.net/doc/488690891.html,:f.size:f.type:f.datacreated'///获取文件信息

fso.deletefile(url)'/////删除文件

end function

--------获取文件夹里所有文件信息

get_folder_infor("c:\kai")

function get_folder_infor(folder)

dim fso,f,f1,n

set fso="createobject(""scrīpting,filesystemobject")

set f="fso.getfolder(folder) set fc="f.files for each f1 in fc select case https://www.wendangku.net/doc/488690891.html,

case"kai.mpg","she.mpg","dd.mp3"'//检查文件夹里是否含有这些文件

end select

next

end function

13 等待某个对象出现方法

y="......waitproperty(""visible",true,10000)

相关文档