51Testing软件测试论坛
标题: QTP学习笔记连载 [打印本页]
作者: dreamsea123 时间: 2009-1-16 10:34
标题: QTP学习笔记连载
QTP学习笔记1——sub和funcition的区别
Function和sub的区别是:function能返回值,而sub是不能返回值的
举例:
function的例子
Dim a
a="dongfang"
Function myfullname(name)
myfullname=name&" baoshu"
msgbox "my fullname is "&myfullname
End Function
Call myfullname(a)
‘myfullname(a) 可以加括号,也可以不加括号
sub的例子
Dim a
a="dongfang"
sub myfullname(a)
msgbox "my fullname is "&a&" baoshu"
end sub
myfullname a
'call myfullname(a) ' 执行函数或sub
注意:
1.调用sub的函数可以用call 也可以不用call,但是使用call的时候需要把后边的括符加上
2.返回的时候使用的是函数名,不能使用return
作者: dreamsea123 时间: 2009-1-16 10:36
标题: QTP学习笔记2——如何调用外部脚本函数
如何调用外部脚本函数
步骤:
1.新建外部脚本文件,命名为:cora.vbs
内容是:
Function test002(a)
msgbox a
End Function
2. 在QTP中新建一个脚本,内容如下
Dim x
x=1
call test002(x)
3.把cora.vbs导入
4.导入的路径是:files-settings-resource
作者: dreamsea123 时间: 2009-1-16 10:36
标题: QTP学习笔记3——重载外部脚本文件
关于重载
VbS不支持重载:
举例:
1.新建一个文件命名为:chongzai.vbs 内容是:
Function myfullname(name)
myfullname=name&"宝树"
msgbox "my fullname is "&myfullname&h
End Function
Function myfullname(name,h)
myfullname=name&"宝树"
msgbox "my fullname is "&myfullname&h
End Function
Function myfullname()
myfullname=name&"宝树"
msgbox "my fullname is "&myfullname&h
End Function
2. 在QTP中新建一个脚本,内容如下
Dim a
Dim b
a="东方"
b="哈哈"
Call myfullname(a,b)
3.把chongzai.vbs导入
4.运行结果报错
原因:vbs只人最后一个function,没有参数就会报错,但是如果把第二个function放到最后就不会报错
作者: dreamsea123 时间: 2009-1-16 10:37
标题: QTP学习笔记4——QTP中启动程序的方法
1. Invokeapplication 如
invokeapplication "C:\Program Files\Mercury Interactive\QuickTest Professional\samples\flight\app\flight4a.exe"
2. systemutil.Run 如
systemutil.Run "C:\Program Files\Mercury Interactive\QuickTest Professional\samples\flight\app\flight4a.exe"
作者: dreamsea123 时间: 2009-1-16 10:38
标题: QTP学习笔记5—密码加密显示
如何给我们的密码加密显示
给mercury加密
步骤:
1.在datatable中输入mercury
2.选中右击选择data-encrypt
作者: dreamsea123 时间: 2009-1-16 10:38
标题: QTP学习笔记6—脚本中的参数化(一)简单参数
1、参数化
以QTP中自带的flignt程序为例
'对飞机订票程序的用户名和密码进行参数化
systemutil.Run "C:\Program Files\Mercury Interactive\QuickTest Professional\samples\flight\app\flight4a.exe"
Dim userid
Dim password
userid="baoshu"
password="494656e21eaea9d10391daf21304bf409919a574"
Dialog("Login").WinEdit("Agent Name:").Set userid
Dialog("Login").WinEdit("Password:").SetSecure password
Dialog("Login").WinButton("OK").Click
2、常量
例子:
systemutil.Run "C:\Program Files\Mercury Interactive\QuickTest Professional\samples\flight\app\flight4a.exe“
Dim cuserid
const cuserid ‘注意命名的规范,常量最好以C开头
Dim password
userid=“founder"
password="494656e21eaea9d10391daf21304bf409919a574"
Dialog("Login").WinEdit("Agent Name:").Set userid
Dialog("Login").WinEdit("Password:").SetSecure password
Dialog("Login").WinButton("OK").Click
作者: dreamsea123 时间: 2009-1-16 10:39
标题: QTP学习笔记7—脚本中的参数化(二)随机参数
随机参数化
使用函数RamdomNumber(0,2),在0到2之间随机产生一个数
以flight4.exe中选择机舱等级为例,一共有:经济舱、商务舱、头等舱三个级别,随机选择一个。
'使用描述性编程
Set ōrderPage = Descrīption.Create()
OrderPage("Class Name").Value= "Window" '设置页面类
OrderPage("Regexpwndtitle").Value="Flight Reservation"
Dim rage,i '设置参数
i=RandomNumber(0,2) '随机参数
Select Case i
Case "0"
rage="First"
print(rage)
Window(OrderPage).WinRadioButton("Class Name:=WinRadioButton","text:="&rage).Set
Case "1"
rage="Business"
print(rage)
Window(OrderPage).WinRadioButton("Class Name:=WinRadioButton","text:="&rage).Set
Case "2"
rage="Economy"
print(rage)
Window(OrderPage).WinRadioButton("Class Name:=WinRadioButton","text:="&rage).Set
End Select '条件语句 0为头等舱,1为商务舱,2为经济舱
作者: 欧阳 时间: 2009-1-16 11:11
顶一个
作者: calliopsis 时间: 2009-2-9 11:19
楼主很认真,关注一下!
作者: aifeisheng 时间: 2009-2-9 13:53
值得我们去学习。
作者: coralsong_1982 时间: 2009-2-9 13:59
楼主提供的信息很有重哦,不错不错!
作者: hmilyjch 时间: 2009-2-9 14:02
good,我也才学这个~~~
作者: dreamsea123 时间: 2009-4-8 11:08
标题: QTP学习笔记8—手动连接oracle数据库
QTP在很多条件下需要进行数据库测试,QTP使用微软ODBC连接数据库
以oracle为例来说明
Set Conn = CreateObject("ADODB.Connection" )
str="DRIVER=Oracle in OraHome92;SERVER=172.29.129.137;DBQ=CMS_172.29.129.137;user id=cms; password=cms" '数据库的地址用户名密码
Conn.open str
Set Rst = CreateObject ("ADODB.Recordset" )
sql = "select * from mid_employee_info "
Rst.open sql,conn
Rst.MoveFirst
If Rst.EOF and Rst.BOF Then
Rst.Close
reporter.ReportEvent micFail,"test","查询失败"
else
Dim returnname
returnname=cstr(Rst(0))
msgbox returnname
Rst.Close
End If
大家可以实验一下,只要更换红色部分的内容
[ 本帖最后由 dreamsea123 于 2009-4-8 11:09 编辑 ]
作者: heqingbluesky 时间: 2009-4-8 14:04
原帖由 dreamsea123 于 2009-1-16 10:36 发表
如何调用外部脚本函数
步骤:
1.新建外部脚本文件,命名为:cora.vbs
内容是:
Function test002(a)
msgbox a
End Function
2. 在QTP中新建一个脚本,内容如下
Dim x
x=1
call test002(x)
3.把 ...
使用VBS文件的时候,应该用ExecuteFile命令编译一下这个VBS文件,否则,Resource中的VBS不起作用。
作者: dreamsea123 时间: 2009-4-8 14:36
谢谢!
作者: peterz 时间: 2009-4-8 16:52
不错。继续
作者: dreamsea123 时间: 2009-4-23 14:54
标题: QTP学习笔记9—while 循环和动态数组赋值
1、声明1个动态数组
Dim group()
2、使用while语句给动态数组赋值
Dim group()
i=0 ' i初始值为0
While i<20
Redim Preserve group(i+1) '重新定义数组纬度
group(i)=i
print group(i)
i=i+1
Wend
Remdim Preservegroup(i+1)
该函数设置数组的纬度,每1次循环设置1次,这样可以避免犯“下标越界”的错误
作者: fanghust 时间: 2009-5-6 11:23
标题: 不错,谢谢
不错,谢谢
作者: dreamsea123 时间: 2009-5-25 13:55
标题: QTP学习笔记10—应用手动连接数据库和动态数组,读取数据库中某列的值,并excel导出
脚本如下:
'手动连接oracle数据库
Set Conn = CreateObject("ADODB.Connection" )
str="DRIVER=Oracle in OraHome92;SERVER=172.29.131.30;DBQ=CMS_172.29.131.30;user id=cmstest; password=cms" '连接数据库服务器
Conn.open str
Set Rst = CreateObject ("ADODB.Recordset" )
sql = "select * from mc_memb " '查询数据库表格
Rst.open sql,conn
Rst.MoveFirst '指向第一行
If Rst.EOF and Rst.BOF Then 'Rst.EOF和Rst.BOF指:
Rst.Close
reporter.ReportEvent micFail,"test","查询失败"
else
Dim memb_real_name() '设置1个动态数组
i=0
column_1=datatable.GetSheet("Action1").addparameter("memb_real_name","")
While not Rst.EOF '循环读取数据库表中某一列的数据
Redim Preserve memb_real_name(i+1) '重新设置数组的纬度
memb_real_name(i)=Rst("memb_real_name").value '将数据库中表mc_memb中的字段"memb_real_name"的值赋给数组
DataTable.SetCurrentRow(i+1) 'datatable中的行数从1开始
DataTable.value("memb_real_name","Action1")=memb_real_name(i) '将数据存放到datatable中
print(i+1&":"& memb_real_name(i)) '打印出来数据库的数据--------用于调试
i=i+1
Rst.MoveNext '指向下一行
Wend
DataTable.ExportSheet "C:\mengguixian002.xls","Action1" '导出数据
Rst.Close
End If
|
作者: fei.ge 时间: 2009-5-25 13:59
不错,不错,继续持续更新……
作者: 南拳王 时间: 2009-5-25 14:13
不错,不错,好好学习一下!!!
作者: whistler.j 时间: 2009-5-26 13:03
有时间研究下。
作者: fei.ge 时间: 2009-5-26 13:55
原来撞车了啊,我说看资料这么眼熟呢,嘿嘿。
作者: blizzardlyk 时间: 2009-5-26 14:40
收藏了啊 总结的挺不错的,看着这么熟悉的...原来是小孟啊
作者: ladyjanice 时间: 2009-6-5 15:38
作者: dreamsea123 时间: 2009-7-14 15:46
标题: 十一、描述性编程获取右键菜单
十一、文件对象
[size=95%]§使用对象
Set file=createobject("scripting.filesystemobject")
新建1个文本文件
Set txtfile_1=file.opentextfile("e:\info.txt",2,true)
文本文件中添加文字
txtfile_1.writeline “testtesttesttesttesttesttest”
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) |
Powered by Discuz! X3.2 |