`
isiqi
  • 浏览: 16058944 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论
阅读更多

QTP 基础代码---转载自51TESTING中的KAI_TOP 网友。

1 生产随机数列

第一种方法

CODE:

randomize'更新反回的数据

funcation rand(k,n)

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

rand=n

end funcation

第二种方法

CODE:

n=randomnumber.value(1,255)

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

CODE:

row=datatable.getcurrentrow

if row="5" then

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

end if

3

CODE:

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

如果参数化密码,可以直接在数据表中写入未加密的密码,它会自动识别,即不用把setsecure改为set

4 如果弹出对话框就获取上面提示信息并与表中的信息对比,不统一证明弹出的提示出错,主要用来验证

CODE:

 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形式下的一种省略形式;完整形式

是:

CODE:

datatable.value("num",dtlocalsheet)

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

CODE:

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

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

CODE:

datatable.setcurrentrow(n)

msgbox(datatable.getsheet("global").getparameter("column_name").Rawvalue)

或者kk=datatable.Rawvalue("column_name","action1")

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

CODE:

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

6 简化代码,明晰结构的方式with--end with 结构:

CODE:

with Dialog("name")

c1=.button("b_name").click'//等价于Dialog("name").button("b_name").click

end with

7 wintreeview一些操作

CODE:

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

根的名称:wintreeview.getitem(0)

8 数据库检查点模块:

CODE:

sub database_check

set con=createobject("adodb.connection")

con.open "Description=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;BAM=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 换行符

CODE:

vbcr----chr(13)回车符

vblf----chr(10)换行符

vbcrlf----chr(13)+chr(10)结合

10 Run from step有两种方式:

CODE:

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

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

11 对于属性是变化的,有时可以把该属性从识别对象里删除,来解决识别问题

12 对系统文件的操作

CODE:

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

get_file_infor("c:\she.mpg")

function get_file_infor(url)

dim fso,f

set fso=createobject("scripting.filesystemobject")

set f=fso.getfile(url)

f.name: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("scripting,filesystemobject")

set f=fso.getfolder(folder)

set fc=f.files

for each f1 in fc

select case f1.name

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

end select

next

end function

13 等待某个对象出现方法

CODE:

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

14 防程序中断方法

CODE:

On error resume next

On error goto handle

15 数组的应用:

CODE:

name=array(1,2,"aa","bb")

name(2)="aa"

16 正则表达式应用模板

CODE:

进行日期YYYY-MM-DD的格式检查 :

Function RegExpTest(patrn, strng)

Dim regEx, Match, Matches ' Create variable.

Set regEx = New RegExp ' Create a regular expression.

regEx.Pattern = patrn ' Set pattern.

regEx.IgnoreCase = True ' Set case insensitivity.

regEx.Global = True ' Set global applicability.

Set Matches = regEx.Execute(strng) ' Execute search.

For Each Match in Matches ' Iterate Matches collection.

RetStr = RetStr & "Match found at position "

RetStr = RetStr & Match.FirstIndex & ". Match Value is '"

RetStr = RetStr & Match.Value & "'." & vbCRLF

Next

RegExpTest = RetStr

End Function

date_pattern="^((((19|20)(([02468][048])|([13579][26]))-02-29))|((20[0-9][0-9])|(19[0-9][0-9]))-((((0[1-9])|(1[0-2]))-((0[1-9])|(1\d)|(2[0-8])))|((((0[13578])|(1[02]))-31)|(((01,3-9])|(1[0-2]))-(29|30)))))$"

result_message=RegExpTest(date_pattern, inputbox("请你输入要检查的时间:"))'用其它正则表达式更改此处

Select case result_message

Case ""

msgbox("你输入的日期格式与标准不匹配")

case else MsgBox(result_message)

end select

17 返回一个字符串在另一字符串中的位置

CODE:

instr(string1,string2)

18 有时回放出现找不到对象时,可能不是由于你的代码问题,而是由于你的操作系统等设置问题;

CODE:

举例说明1:

比如:你录制一个选择磁盘中的文件动作

会录制为:

.winlistview(" ").drap 46,99

.winlistview(" ").draponitem "she.mp3"

下次录制的时候,如果你的系统文件改为不显示扩展名,下次执行的时候,QTP就找不到she.mp3,只能找到she;

举例说明2:

有时由于不同操作系统以及不同的ie,导致有些窗口不能识别,比如在2000下弹出的网页对话框的标题是:

“web对话框",而在2003上是”网页对话框"

19 "is+*"类型function

CODE:

isarray'是否是数组

isconnected'判断QTP是否连接到TD

isdate'是否是合法的日期类型

isempty'判断是否初始化

isNull'判断是否为空值

isNumeric'判断是否是数字型

isobject'判断是否一个功能对象

isready'判断设备是否准备就绪

isRootFolder'是否是根目录

分享到:
评论

相关推荐

    【QTP】QTP基础代码.pdf

    【QTP】QTP基础代码 供大家下载学习

    常用QTP基础代码(文档)

    列举QTP中常用基础代码 1 生产随机数列 第一种方法 CODE: [Copy to clipboard] randomize'更新反回的数据 funcation rand(k,n) n=int((k-1)*rnd+1) rand=n end funcation 第二种方法 CODE: [Copy to clipboard] n=...

    qtp 基础代码

    qtp 基础代码 例子

    软件测试工具QTP基础代码收集

    qtpQTP软件测试工具QTP基础代码收集1、将bug添加到QCDimTDConnectionSetTDConnection=CreateObject("TDApiOle.TDConnection")TDConnection.InitConnection..."bella","pino软件测试工具QTP基础代码收集1、将bug添加到...

    QTP中一些基础代码的积累

    总结了一些关于QTP基础代码的学习,主要是结构代码的积累,总共有23种

    学习入门的qtp_基础代码

    基础代码学习,有利于深入学习qtp代码的入门哦!

    QTP的详细基础代码

    QTP的详细基础代码,帮组初学的人利用qtp完成自动化测试

    QTP进阶资料 最新

    qtp_基础代码 QTP-SystemUtil QTP操作 1 QTP操作 2 QTP操作 3 QTP操作 4 QTP操作 5 QTP操作 6 shell32 VBS基础 VBS提高 Win32_API wsh_ 错误处理 慢慢学习 VBScript (V1[ 1].0) 文件操作 正则表达

    qtp基础教程

    qtp基础教程 学习 适合初学者下载 包括qtp安装、脚本、参数化、vb代码参数优化等

    QTP常用技巧应用与代码实践

    6、基础知识 7、对象库和对象属性 8、文件、参数表和ACTION 9、数据库链接和检查 10、其它运行时问题 11、QTP中常用的VBS函数 12、读取LOG文件代码 13、对global与localtable的理解 14、根据材料写的实例代码 15、...

    QTP的基础设置

    NULL 博文链接:https://crystal2012.iteye.com/blog/1439535

    QTP+自动化测试框架

    用VBscritp在QTP的基础上进行二次开发,是自动化测试更加简洁高效。其中包含所有源代码和文档。

    QTP脚本的封装和调用

    从经验中学习很多东西,帮助零基础学者少走弯路,

    qtp对于web测试

    qtp web功能测试,里面有代码,应该是基础的吧,现在还看不大懂

    软件测试工具QTP中一些基础代码结构累积

    QTP结构软件测试工具QTP中一些基础代码结构累积1生产随机数列第一种方法———————————–randomize’更新反回的数据funcationrand(k,n)n=int((k-1)*rnd+1)rand=nendfuncation第二种方法n=randomnumber.value...

    软件测试工具QTP中的一些基础代码结构累积

    QTP结构软件测试工具QTP中的一些基础代码结构累积1生产随机数列第一种方法———————————–randomize’更新反回的数据funcationrand(k,n)n=int((k-1)*rnd+1)rand=nendfuncation第二种方法n=randomnumber....

    QTP:VBS基础教程

    Vbs是一种Windows脚本,它的全称是:Microsoft Visual Basic Script Editon.(微软公司可视化BASIC脚本版),VBS是Visual Basic的的一个抽象子集,是系统内置的,用它编写的脚本代码不能编译成二进制文件,直接由...

    透析QTP自动化测试框架SAFFRON

     框架是一组自动化测试的规范、测试脚本的基础代码,以及测试思想、惯例的集合。可用于减少冗余代码、提高代码生产率、提高代码重用性和可维护性。例如QTestWare就是QTP自动化测试框架中的一类。

    精通QTP——自动化测试技术领航

    1.5 QTP精华—对象库(上)之基础攻略篇 75 1.5.1 引言 76 1.5.2 对象库的出现改写了软件测试历史 76 1.5.3 一个简单的实例介绍对象库原理、机制及操作流程 77 1.5.3.1 对象模型的老大Object Identification和...

Global site tag (gtag.js) - Google Analytics