lan_7366 发表于 2011-1-17 20:26:28

QTP on error 错误处理机制

大家好,我是新手,有个问题想请教大家。
我录制了一个脚本(测试项目是C++项目),现在需要进行错误处理。包括两个方面的错误。一个是程序中的错误,一个是脚本错误。对于这两种错误我的想法是,无论是遇到程序bug还是遇到脚本错误,都先进行截图,并放到指定目录,然后继续进行下一个迭代循环。
问题是:该如何实现这个想法呢?

gztester 发表于 2011-1-17 22:54:25

On Error Resume Next

lan_7366 发表于 2011-1-18 09:37:36

这个是我的代码,麻烦大家帮忙看一下!
问题一:不能在发生错误的时候截图。该怎么修改?
问题二:怎么修改才能对于程序错误和脚本错误都记录下来?
Function RecoverFunctions(Object,Method,Argument,retVal)
   Dim objFSO
   Dim strDesktopFolder
   Dim objFolder
   Dim PathWay
   Dim FileName
   Dim TimeStamp
   Dim WshShell
   Dim strStepinfo
   Dim strDetails
        Dim CheckFolderExists

   
        strDesktopFolder ="C:\ErrorScreenCapture"
        Set objFSO=CreateObject ("Scripting.FileSystemObject")
CheckFolderExists =objFSO.FolderExists(strDesktopFolder)
        If CheckFolderExists=True Then
      Set objFolder=objFSO.GetFolder(strDesktopFolder)
                else CreateFolderDemo strDesktopFolder
               
    End If
       
        PathWay="C:\ErrorScreenCapture"
        TimeStamp=year(now) & month(now) & day(now) & hour(now) & minute(now)
        msgbox TimeStamp
   FileName=PathWay&TimeStamp&".bmp"
       msgbox FileName
       Desktop.CaptureBitmap FileName

        reporter.Filter=0
        reporter.ReportEvent 1,"测试失败","将error截图保存下来"
        reporter.Filter=3
       
        On Error Resume Next
        Err.Raise
        strStepinfo="T发生非预期错误,测试退出"
        strDetails = "错误编号:" & CStr(Err.Number) & ",错误描述:" & Err.Description
       
       reporter.Filter = 0   
    Reporter.ReportEvent micFail, strStepInfo," " & Arguments(0) & " 出现错误,错误编号:" & retVal
        reporter.Filter = 3
       
        Err.clear
        On Error GoTo 0

'End Function

Function CreateFolderDemo(sFlodername)
Dim fso, f
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.CreateFolder(strDesktopFolder)
End Function

shotstar 发表于 2011-1-20 10:01:13

问题一:不能在发生错误的时候截图。该怎么修改?
使用场景恢复,设置any error的时候调用你的这个function。
问题二:怎么修改才能对于程序错误和脚本错误都记录下来?
程序错误的情况有很多,对于能够引发脚本的错误的程序错误(比如某个对象不见了或者意外弹出一个对话框),这种用场景恢复都可以处理。对于不会引发脚本错误的程序错误,比如显示的文字错误或者其他情况,只能你自己做一些检查点,可以判断检查点不通过的时候去调用你的function。
页: [1]
查看完整版本: QTP on error 错误处理机制