发布新日志

  • QTP 经常要用到的程序和函数

    2008-03-22 22:56:09

    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

我的栏目

我的存档

数据统计

  • 访问量: 1025
  • 日志数: 1
  • 建立时间: 2008-03-22
  • 更新时间: 2008-03-22

RSS订阅

Open Toolbar