• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

软件测试工具QTP中运行错误的捕捉和记录

发布: 2010-2-01 14:00 | 作者: 网络转载 | 来源: 领测软件测试 | 查看: 124次 | 进入软件测试论坛讨论

领测软件测试网

软件测试工具QTP中运行错误的捕捉和记录  

在自动化程序的运行过程中,经常因为环境问题或者代码本身不完善而出现流程不能顺利进行下去的情况,或者会有一些“随机”的提示框(如“操作太快,页面不能及时处理”),这时QTP会产生错误提示,对于这些提示,完全忽略不可取,最好的是及时记录当前错误内容,重复当前操作,当错误提示累计到一定数量,中止当前流程。

  本文提供一种QTP运行错误的捕捉和记录方法,结合QTP本身的场景恢复机制,可以很好的解决该问题。

  首先在恢复场景中定义场景恢复策略,选择需要捕捉的错误种类,定义捕捉错误后的处理,此处定义一个异常处理函数。

  函数定义如下:


‘ Object-出错对象;Method-对象当前的方法;Argu-对象当前方法的参数;retval-当前错误的返回值(errCode)
Function RecordErr(Object, Method, Arguments, retVal)
       wait 3
       Dim ErrCode,ErrDesc,ArgCount,WrongInfo,ArgList
       Dim i,blankStr,ErrCount,CurRow
      
       ‘ 在Globaltable中记录累计错误数
       CurRow = DataTable.GlobalSheet.GetcurrentRow
       DataTable.GlobalSheet.SetcurrentRow 1  
   
    If Environment ("ActionName")<> datatable.Value("CurAction",dtGlobalSheet) Then
              datatable.Value("CurAction",dtGlobalSheet) = Environment ("ActionName")
              datatable.Value("ErrCount",dtGlobalSheet) = 0
       End If
   
       ErrCount = CInt (datatable.Value("ErrCount",dtGlobalSheet))
       blankStr = "                                  "
   
       ErrCode = retVal
       If ErrCode = 0 Then
              ErrDesc = "不明错误!"
       Else
              ErrDesc = DescribeResult(ErrCode)
       End If
 
       ArgCount = UBound(Arguments)
       For i = 0 to ArgCount
        ArgList = ArgList & CStr(i) & "--" & CStr(Arguments(i)) & "/"
       Next
      
       On Error Resume Next
       ‘ 获取对象错误具体描述,此处使用了对象较通用的name属性,部分对象没有该属性可能出错
       WrongInfo = "Object Name: " & Object.GetTOProperty("name") & vbCrLf _
                   & blankStr & "Current Method: " & Method & vbCrLf _
                   & blankStr & "ArgList: " & ArgList & vbCrLf _
                   & blankStr & "ErrDesc: " & ErrDesc
 
       On Error GoTo 0   
    GE_logError "对象运行中出现错误--" & WrongInfo,micFail   
   
    Err.Clear
   
ErrCount = ErrCount + 1
 
    ‘ 累计错误达5次后退出当前流程
    If ErrCount >= 5 Then
              ErrCount = 0
              datatable.Value("ErrCount",dtGlobalSheet) = ErrCount
              DataTable.GlobalSheet.SetcurrentRow CurRow
              routingname = ""
              GE_logError "*****运行过程错误过多,退出本Aciton Iteration,请运行完成后检查环境和脚本!*****",micFail
              ExitActionIteration
       End If
 
       datatable.Value("ErrCount",dtGlobalSheet) = ErrCount
       DataTable.GlobalSheet.SetcurrentRow CurRow
      
End Function

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

TAG: qtp QTP 工具 记录 软件测试 运行


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网