As long as alive, every day is full of hope

基础代码

上一篇 / 下一篇  2009-06-18 17:31:51 / 个人分类:测试知识

1. 生产随机数列
第一种方法

Randomize   '更新返回的数据(Initialize random-number generator)
Function rand(k)
n = Int((k-1)* Rnd +1)
rand = n
End Function


第二种方法

n=randomnumber.value(1,255)
msgbox n

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

row=datatable.getcurrentrow
if row="5" then
  datatable.export("d:\data.xml")
end if

3.向某一列的单元格赋值:
datatable.value("column_name",dtlocalsheet)="nanjing"

4.取得某一行具体值:
datatable.setcurrentrow(n)
msgbox(datatable.getsheet("global").getparameter("column_name").Rawvalue)
或者kk=datatable.Rawvalue("column_name","action1")

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

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

6.   wintreeview一些操作

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

7.   数据库检查点模块:
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


8.  由于对象属性原因,无法识别对象
-----对于对象属性是变化的,可以参数化/或者用正则表达式
-----报匹配多个对象错误,可以spy查看对象,添加一个该对象另一个唯一标识属性
-----有时可以删除对象的变化的属性来解决识别问题
------对于多个完全相同的对象,可以采用添加index,location,createtime等特殊属性来识别
  (index:按照程序源码,绘制对象的先后标识对象,所以与其它相同对象是相互依赖,当其它对象发生
  变化后,原先的所有对象index属性要发生变化,开始是0;如index:=0;
        location:根据对象的位置进行确定,从上到下,从左到右;
  CreateTime:按照对象被浏览器打开的先后标识对象)
------另外换一种思维方式,采取等效的方法;比如用键盘代替鼠标或用操作系统本身特性去解决问题


9.   等待某个对象出现方法
y=......waitproperty("visible",true,10000)


10.  "is+*"类型function
isarray'是否是数组
isconnected'判断QTP是否连接到TD
isdate'是否是合法的日期类型
isempty'判断是否初始化
isNull'判断是否为空值
isNumeric'判断是否是数字型
isobject'判断是否一个功能对象
isready'判断设备是否准备就绪
isRootFolder'是否是根目录


11.  获取对象属性名称用法:
GetRoProperty----从应用程序界面上获取对象属性(即,是脚本运行时,获取的对象动态属性值)
           例如:获取对象库中index属性值,似乎只能用GetToProperty,因为应用程序界面上对象没有该属性,只是
      QTP为识别该对象创立的描述属性;
GetToproperty----从对象库中描述对象的属性,静态值
GetToProperties----获取用于标识对象的属性集;对于这个集合,有count等属性方法


12. FireEvent的使用可以对一个对象进行更复杂的操作
如:FireEvent("onfocus")   '使一个控件获取焦点
     FireEvent("ondblclick")  '实现双击/也可以在事件设定中针对该对象事件响应 


13. 模板的应用
-----新建一个文本,输入一些新建Action时常包含的信息,然后保存为ActionTemplate.MST文件,
 并复制到QTP/dat目录下;这样每次新建action都会包含固定的信息了;
例如:
'-------------------脚本说明---------------
'产品版本:      __Build(  )
'测试员:
'编写日期:
'测试功能:
'脚本类型:
'被测试对象初始状态:
'进展程度:
'基本思路:
'主要功能函数:
'历史修改:
'没解决的问题:
'--------------------脚本内容-------------


TAG:

 

评分:0

我来说两句

Open Toolbar