51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4131|回复: 16
打印 上一主题 下一主题

[原创] 以下是我自写一个QTP自动下载TD中附件的脚本,共享和大家一起学习

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2006-5-11 10:46:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Dim TestPath
Dim  ParamFile
Dim Get_URL_File
Dim DataCheck_File
Dim Have_Attach
Dim FileNameArray(50)
Dim CountFile
Dim hWnd
TestPath = Environment ("TestDir")
Get_URL_File = TestPath & "\Get_URL_Module.txt"
DataCheck_File = TestPath & "\SQLDataBaseCheck_Function.txt"
'ExecuteFile Get_URL_File
'URL = Get_URL_Module()
'SystemUtil.Run URL
'hWnd = Browser(Browser).GetROProperty("hwnd")


'检查数据库中打开的脚本是否包含附件
Function Check_File
   Dim TestName
   Dim Con,Record,Sql1,Sql2,j,Id,SQLFile,RealFile,NameLen,I,s
   TestName = Environment ("TestName")
   Set Con=CreateObject("Adodb.Connection")
   '在以下修改数据库的连接,指定数据库服务器名(SERVER、WSID)、帐号(UID)、密码(PWD)、项目使用的数据库(DATABASE)
        Con.Open "Description=QTP_ODBC;DRIVER=SQL Server;SERVER=服务器名;UID=帐号;"&_
                                         "PWD=密码;APP=Quick Test Pro;WSID=服务器名;DATABASE=项目使用的数据库"
        Set Record1=CreateObject("Adodb.Recordset")
        Set Record2=CreateObject("Adodb.Recordset")
        CountFile = 0
         Have_Attach = 0
        sql1="select*from td.TEST order by TS_TEST_ID DESC "
        sql2="select*from td.CROS_REF"
        Record1.Open Sql1,Con
        Record2.Open Sql2,Con
        DO
                If Record1("TS_NAME").Value= TestName and Record1("TS_ATTACHMENT").Value="Y"  Then
                        Have_Attach = 1
                        Id = Record1("TS_TEST_ID").Value
                        Do
                                If  Int(Record2("CR_KEY_1").Value) = id Then
                                         SQLFile = Record2("CR_REFERENCE").Value
                                         NameLen = Len(SQLFile)
                                         i = Instr(6, SQLFile, "_", 1)
                                         RealFile = Right(SQLFile,(NameLen - i) )
                                         FileNameArray(CountFile) = SQLFile&"~"&RealFile
                                         CountFile = CountFile + 1
                                End If
                                Record2.MoveNext
                        Loop Until Record2.Eof=true
                                Record2.Close
                                Set Record2=Nothing
                        End If
                         Record1.MoveNext
                 Loop Until Record1.Eof=true
                 Record1.Close
                Set Record1=Nothing
                Con.Close
                Set Con=Nothing
End Function

'通过远程凭证(自动建立一个RPC通道)
Function Remote_Access
           DIM ObjShell,ShellCmd
                Set ObjShell=CreateObject("WScript.Shell")
                ShellCmd ="net use \\TD服务器名\TD共享目录名 密码 /user:用户"
                ObjShell.Run ShellCmd,1,True
                Set objShell = Nothing       
End Function

'复制TD服务器共享目录下脚本包含的附件到本地QTP运行目录下
Function CopyFileToLocalHost
           Dim ServerHost,ServerPath
           Dim objFSO,f_s,f_l,fc_s,fc_l,fs,fl
           Dim SQLFileName,RealName,FileName,NameLen,QTPFile
           Dim k,i,check
           'TD服务器地址(ServerHost),TD中项目保存附件的共享目录(ServerPathTD)
           ServerHost ="TD服务器地址"
           ServerPath = ServerHost&"TD中项目保存附件的共享目录"
             Set objFSO = CreateObject("Scripting.FileSystemObject")
                 Set f_s = objFSO.GetFolder(ServerPath)
                 Set f_l = objFSO.GetFolder(TestPath)
                 Set fc_s=f_s.Files
                 Set fc_l=f_l.Files
                   If  Have_Attach = 1 Then
                       For k = 0 To CountFile - 1
                                        FileName = FileNameArray(k)
                                        NameLen = Len(FileName)
                                        i = Instr(1, FileName, "~", 1)
                                        RealName = Right(FileName,(NameLen - i) )
                                        SQLFileName = Left(FileName,(i-1))
                                                For Each fs in fc_s
                                                        If  fs.Name = SQLFileName Then
                                                                For Each fl in fc_l
                                                                        If fl.Name <> SQLFileName Then
                                        check = 0
                                                                                Else
                                                                                check = 1
                                                                        End If
                                                                NEXT
                                                                If check = 0  Then
                                                                Set QTPFile = objFSO.GetFile(ServerPath&SQLFileName)
                                                                objFSO.CopyFile  ServerPath&SQLFileName,TestPath&"\"&RealName
                                                           End If
                                                        End If
                       NEXT
          NEXT
      End If
End Function

'结果显示处理
Function Result_Display
           Dim objFSO,f,fc,f1
           Dim ExtendName1,ExtendName2,QTPdefaultXLS,TextChar
           Dim Check_SQF,SQF,Check_GUF,GUF,Check_PF,ParamFileName,i,l,j,OtherFileName,FileName,NameLen,OtherFileNameN
                ExtendName1 = "txt"
                ExtendName2  = "xls"
                QTPdefaultXLS = "Default.xls"
                Const ForReading = 1
             Set objFSO = CreateObject("Scripting.FileSystemObject")
                 Set f = objFSO.GetFolder(TestPath)
                 Set fc=f.Files
                 If  Have_Attach = 1 Then
                        For Each f1 in fc
                                If Instr(1, f1.Name, ExtendName1)  >1 or  Instr(1, f1.Name, ExtendName2)  >1 Then
                                        If f1.Name <> QTPdefaultXLS Then
                                                        Select Case f1.Name
                                                Case "SQLDataBaseCheck_Function.txt"
                                                                Set MyFile = objFSO.OpenTextFile(TestPath& "\SQLDataBaseCheck_Function.txt", ForReading)
                                                                TextChar = MyFile.ReadLine
                                                             If  Instr(1, TextChar,"SQLDataBaseCheck_Function")  >1 or  f1.size = "8435" Then
                                                                        Check_SQF = 1
                                                                        SQF =  f1.Name
                                                                    For i = 0  To CountFile - 1
                                                                          FileName = FileNameArray(i)
                                                                          NameLen = Len(FileName)
                                                                          j = Instr(1, FileName, "~", 1)
                                                                          RealName = Right(FileName,(NameLen - j) )
                                                                            If  RealName =  f1.Name Then
                                                                                     FileNameArray(i) = Empty
                                                                                End If
                                                                        Next
                                                             End if
                                                Case "Get_URL_Module.txt"
                                                                Set MyFile = objFSO.OpenTextFile( TestPath&"\Get_URL_Module.txt", ForReading)
                                                                TextChar = MyFile.ReadLine
                                                                 If  Instr(1, TextChar,"Get_URL_Module")  >1 or  f1.size = "424" Then
                                                                        Check_GUF = 1
                                                                        GUF =  f1.Name
                                                                         For i = 0  To CountFile - 1
                                                                          FileName = FileNameArray(i)
                                                                          NameLen = Len(FileName)
                                                                          j = Instr(1, FileName, "~", 1)
                                                                          RealName = Right(FileName,(NameLen - j) )
                                                                            If  RealName =  f1.Name Then
                                                                                     FileNameArray(i) = Empty
                                                                                End If
                                                                        Next
                                                                End if
                                                        End select
                                                   If  Instr(1, f1.Name, ExtendName2)  >1 Then
                                                                        Check_PF = 1
                                                                        ParamFileName =  f1.Name
                                                                         For i = 0  To CountFile - 1
                                                                          FileName = FileNameArray(i)
                                                                          NameLen = Len(FileName)
                                                                          j = Instr(1, FileName, "~", 1)
                                                                          RealName = Right(FileName,(NameLen - j) )
                                                                            If  RealName =  f1.Name Then
                                                                                    FileNameArray(i) =Empty
                                                                                End If
                                                                        Next
                                                                        End If
                                                End If
                     End If
                 NEXT
                         Else
        End If
                                If   Have_Attach = 1 Then
                                         If  FileNameArray(0) =Empty Then
                                                          i = 1
                                                          FileName = FileNameArray(i)
                                                          NameLen = Len(FileName)
                                                           l= Instr(1, FileName, "~", 1)
                                                           OtherFileName = Right(FileName,(NameLen - l) )
                                                          Else
                                                          i = 0
                                                          FileName = FileNameArray(i)
                                                          NameLen = Len(FileName)
                                                           l= Instr(1, FileName, "~", 1)
                                                           OtherFileName = Right(FileName,(NameLen - l) )
                                                  End If
                                         For k = i +1 To  CountFile - 1
                                                        If  FileNameArray(k) <> Empty   Then
                                                             FileName = FileNameArray(k)
                                                             NameLen = Len(FileName)
                                                             l= Instr(1, FileName, "~", 1)
                                                            OtherFileNameN = Right(FileName,(NameLen - l) )
                                                                OtherFileName = OtherFileName&vblf&OtherFileNameN
                                                   End If
                                                Next
                                                If  OtherFileName <> Empty Then
                                                    If  Check_SQF = 1 or Check_GUF = 1Then
                                                                 If  Check_PF = 1 Then
                                                                 Reporter.ReportEvent 2,"脚本初始化结果:","脚本初始化成功。"&vblf&"成功从TD服务器上下载了脚本包含的"&_
                                                                         ":"&vblf&"参数文件:"&ParamFileName&vblf&"功能插件:"&SQF&vblf&GUF&vblf&"其它类型文件:"&OtherFileName
                                                                 Else
                                                                Reporter.ReportEvent 2,"脚本初始化结果:","脚本初始化成功。"&vblf&"成功从TD服务器上下载了脚本包含的"&_
                                                                        ":"&vblf&"功能插件:"&SQF&vblf&GUF&vblf&"其它类型文件:"&OtherFileName
                                                        End If
                                               Else
                                                      If  Check_PF = 1 Then
                                                                Reporter.ReportEvent 2,"脚本初始化结果:","脚本初始化成功。"&vblf&"成功从TD服务器上下载了脚本包含的"&_
                                                                ":"&vblf&"参数文件:"&ParamFileName&vblf&"其它类型文件:"&OtherFileName
                                                                End If
                                                End If
                                                        Else
                                                        If  Check_SQF = 1 or Check_GUF = 1Then
                                                                 If  Check_PF = 1 Then
                                                                 Reporter.ReportEvent 2,"脚本初始化结果:","脚本初始化成功。"&vblf&"成功从TD服务器上下载了脚本包含的"&_
                                                                         ":"&vblf&"参数文件:"&ParamFileName&vblf&"功能插件:"&SQF&vblf&GUF
                                                             Else
                                                                Reporter.ReportEvent 2,"脚本初始化结果:","脚本初始化成功。"&vblf&"成功从TD服务器上下载了脚本包含的"&_
                                                                        ":"&vblf&"功能插件:"&SQF&vblf&GUF
                                                  End If
                                              Else
                                                      If  Check_PF = 1 Then
                                                                Reporter.ReportEvent 2,"脚本初始化结果:","脚本初始化成功。"&vblf&"成功从TD服务器上下载了脚本包含的"&_
                                                                ":"&vblf&"参数文件:"&ParamFileName
                                                                End If
                                                   End If
                                                End If
                               Else
                                                        Reporter.ReportEvent 2,"脚本初始化结果:","脚本初始化成功,脚本不包含参数文件和功能插件。"
                        End If
End Function

[ 本帖最后由 erwinsun 于 2006-5-11 10:48 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2006-7-20 23:34:43 | 只看该作者
顶一下
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2006-8-1 17:49:28 | 只看该作者

太强了

这也能写出来呀,利害!留个MSN呀,以便向你学习和交流
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2006-9-6 12:12:46 | 只看该作者
哇,好长啊~~~
我给大家发一个程序,可以下载td中的附件,这样其他测试工具都可以用了

[ 本帖最后由 eric.y 于 2006-9-6 12:13 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2014-12-26 13:34
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    5#
    发表于 2006-9-6 12:56:50 | 只看该作者

    哈哈,顶一下

    路过,再一次路过,反复路过,不停的路过,逛多人路过……
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2006-12-1 14:20:50 | 只看该作者
    好厉害呀~~sdlkfj8
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2007-4-5 15:05:03 | 只看该作者

    不顶没天理啊!顶!

    顶!顶!顶!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
    发表于 2007-4-5 15:47:17 | 只看该作者
    果然牛人太多了啊!
    强烈佩服你!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2007-4-5 17:53:17 | 只看该作者
    谢谢
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
    发表于 2007-4-6 13:44:33 | 只看该作者
    学习了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
    发表于 2007-4-8 18:41:53 | 只看该作者
    太牛了,顶机
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2007-4-10 11:21:22 | 只看该作者
    sdlkfj4 好厉害哦
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
    发表于 2007-4-11 09:20:28 | 只看该作者
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
    发表于 2007-4-12 09:07:37 | 只看该作者
    太厉害了,顶楼主一下
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
    发表于 2007-4-12 15:27:03 | 只看该作者
    我还不知道TD是干什么用的呢?
    有人告诉我吗?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2015-11-30 13:55
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    16#
    发表于 2010-12-14 16:22:04 | 只看该作者
    回复 4# eric.y


       这个工具可以用在QC上吗?能详细说说不?我这试验了无数次了,始终不成功
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17#
    发表于 2010-12-16 08:24:05 | 只看该作者
    舍近求远……
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-7 16:45 , Processed in 0.104736 second(s), 29 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表