TA的每日心情 | 奋斗 2022-7-13 15:22 |
---|
签到天数: 1 天 连续签到: 1 天 [LV.1]测试小兵
|
尝试封装一些经常要用到的制程序和函数:
1. 创建一个vbs文件:TestVbs.vbs
内容如下:
'##################################################################################
'##################################################################################
Sub CloseWeb()
' 此处可以用到描述性编程,把先期打开的IE窗口全关闭
Dim WinIe,Ie,i,m
Set WinIe=description.Create()
WinIe("regexpwndtitle").value=" Microsoft Internet Explorer" '所有页面的regexpwndtitle属性值都是" Microsoft Internet Explorer",也可以用其他属性
Set Ie=desktop.ChildObjects(WinIe)
m=Ie.count
For i=1 to m
Ie(i-1).close ' 0为最后打开的一个,可关闭打开的几个,,循环改成for i=1 to m
Next
End Sub
'##################################################################################
function TestVbs(format)
msgbox "参数是" & format
end function
'#################################################################
'#################################################################
'往文件里面写内容
'第一个参数 文件的路径
'第二个参数:写入的内容
'第三个参数:写入的格式("Appending/Writing")
' See also "FileSystemObject"
Sub Write2File(FilePath,content,style)
Dim fso,f
Dim stl
If Ucase(style)="APPENDING" Then
stl=8
else
if Ucase(style)="WRITING" then
stl=2
else
reporter.ReportEvent 1,"参数错误","Writing <" & FilePath &">:<"& content &">With<" & style & ">"
Exit Sub
end if
End If
Set fso=CreateObject("Scripting.FileSystemObject")
Set f=fso.OpenTextFile(FilePath,stl,true)
'content="写入的第一行内容"
f.WriteLine(content)
f.Close
Set f=nothing
Set fso=nothing
End Sub
'#################################################################
'#################################################################
'#################################################################
' 连接数据库子程序
' 第一个参数:根据数据库的类型,设计连接字符串(参见udl文件)
' 第二个参数:连接数据库之后,进行查询的相应语句
' 第三个参数:查询记录返回到res
Sub OpenDB(conn,sql,res)
Set cnn=CreateObject("adodb.connection")
cnn.open conn
Set res=CreateObject("adodb.recordset")
res.open sql,cnn,1,1
End Sub
'#################################################################
'#################################################################
'#################################################################
' 关闭数据库的连接
sub CloseDB
Set res=nothing
Set cnn=nothing
end sub
'#################################################################
2. QTP导入这个TestVbs.vbs 文件:
菜单:Test-->Setting-->Resource
在“Associated Library Files” 添加入该文件
这里建议可以使用 相对路径,如..\TestVbs.vbs
3. 测试封装的子程序:
用“Run from steps”运行模式(专家视图 右键,第四个菜单项,脚本从光标处运行)
在QTP 中添加测试代码:
CloseWeb() '实现关闭当前所有的IE窗口
stop
' 调用外部函数 Write2File
Write2File "c:\File.txt","Writhing a Line","Writing"
Write2File "c:\File.txt","Appending a Line","Appending"
Write2File "c:\File.txt","Appending a Line","Appending!" ' 参数不正确
Write2File ".\vbs\File.txt","Appending a Line","Appending"
stop
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
' 设置连接数据库所需要的初始值,包括:
' conn :数据库连接字符串
' sql:查询的SQL语句
' res:查询的返回记录
Dim conn,sql,res
conn="Provider=MSDASQL.1;Persist Security Info=False;Data Source=QT_Flight32"
sql="select * from Orders"
Set res=nothing
' 调用外部子程序 OpenDB 进行连接数据库
OpenDB conn,sql,res
'msgbox res.RecordCount&"行," & res.fields.count & "列"
res.MoveFirst
' res.MoveNext 没有它的话,记录就成了死循环
'reporter.ReportEvent 2,"测试连接数据库","数据库获取数据:" & res.fields(0)
RowCount=res.RecordCount
ColumnCount=res.fields.count
While not res.eof
Record=""
For i=0 to ColumnCount-1
Record=Record & ":" &res.fields(i)
Next
Record=mid(Record,2)
reporter.ReportEvent 2,"数据库记录:",Record
res.MoveNext
Wend
' 调用外部子程序 CloseDB关闭数据库
CloseDB |
|