51Testing软件测试论坛

标题: QTP on error 错误处理机制 [打印本页]

作者: lan_7366    时间: 2011-1-17 20:26
标题: QTP on error 错误处理机制
大家好,我是新手,有个问题想请教大家。
我录制了一个脚本(测试项目是C++项目),现在需要进行错误处理。包括两个方面的错误。一个是程序中的错误,一个是脚本错误。对于这两种错误我的想法是,无论是遇到程序bug还是遇到脚本错误,都先进行截图,并放到指定目录,然后继续进行下一个迭代循环。
问题是:该如何实现这个想法呢?
作者: gztester    时间: 2011-1-17 22:54
On Error Resume Next
作者: lan_7366    时间: 2011-1-18 09:37
这个是我的代码,麻烦大家帮忙看一下!
问题一:不能在发生错误的时候截图。该怎么修改?
问题二:怎么修改才能对于程序错误和脚本错误都记录下来?
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
问题一:不能在发生错误的时候截图。该怎么修改?
使用场景恢复,设置any error的时候调用你的这个function。
问题二:怎么修改才能对于程序错误和脚本错误都记录下来?
程序错误的情况有很多,对于能够引发脚本的错误的程序错误(比如某个对象不见了或者意外弹出一个对话框),这种用场景恢复都可以处理。对于不会引发脚本错误的程序错误,比如显示的文字错误或者其他情况,只能你自己做一些检查点,可以判断检查点不通过的时候去调用你的function。




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2