51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3136|回复: 3
打印 上一主题 下一主题

[求助] QTP on error 错误处理机制

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2011-1-17 20:26:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1测试积点
大家好,我是新手,有个问题想请教大家。
我录制了一个脚本(测试项目是C++项目),现在需要进行错误处理。包括两个方面的错误。一个是程序中的错误,一个是脚本错误。对于这两种错误我的想法是,无论是遇到程序bug还是遇到脚本错误,都先进行截图,并放到指定目录,然后继续进行下一个迭代循环。
问题是:该如何实现这个想法呢?

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2011-1-17 22:54:25 | 只看该作者
On Error Resume Next
回复

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 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
回复

使用道具 举报

该用户从未签到

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

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-16 05:24 , Processed in 0.071543 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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