QTP常用函数

上一篇 / 下一篇  2008-03-27 19:07:29 / 个人分类:QTP

1. 创建一个vbs文件:TestVbs.vbs
内容如下:
'##################################################################################
'##################################################################################
Sub CloseWeb()

'         此处可以用到描述性编程,把先期打开的IE窗口全关闭
Dim WinIe,Ie,i,m
Set WinIe=descrīption.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("scrīpting.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

TAG: QTP

 

评分:0

我来说两句

Open Toolbar