多测师是一家拥有先进的教学理念,强大的师资团队,业内好评甚多的接口自动化测试培训机构!

17727591462

联系电话

您现在所在位置:接口自动化测试培训 > 新闻资讯

QTP中运行错误的捕捉和记录-自动化测试

更新时间:2022-05-23 09:21:39 作者:多测师 浏览:157

  在自动化程序的运行过程中,经常因为环境问题或者代码本身不完善而出现流程不能顺利进行下去的情况,或者会有一些“随机”的提示框(如“操作太快,页面不能及时处理”),这时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

  以上内容为大家介绍了自动化测试中的QTP中运行错误的捕捉和记录,本文由多测师亲自撰写,希望对大家有所帮助。了解更多自动化测试相关知识:https://www.aichudan.com/xwzx/

联系电话

17727591462

返回顶部