QTP出错处理机制

本文介绍了VBS脚本中采用的Stoprun模式错误处理机制,包括如何通过主控函数使用OnErrorResumeNext或OnErrorGoto0来拦截Case函数及其子函数中的错误,并记录错误详情,确保错误发生时不会导致整个测试流程中断。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Stop run 模式发生错误后,就抛出异常(可用Err对象得到异常里的错误信息),中止本函数,并一层一层的返回到上一层函数,最后到达Action函数后(Action本身也可以看成是个函数),就停止整个Test的执行。  在一层一层的返回上层函数的过程中,如果某个中间函数有On Error Resumt Next/On Error goto 0,就会把错误拦截下来,这个中间函数会继续往下执行,不会中止函数并返回上一层函数。

在主控Test中,全局错误处理模式使用Stop run模式,同时在主控函数里使用On Error Resumt Next/On Error goto 0的局部错误处理模式来调用Case函数。这样使得Case函数和其子函数里发生错误时,会停止执行,并层层返回到主控函数这里,并由主控函数来拦截错误,记录错误。然后主控函数就可以正常的继续执行下一个Case函数了,不用担心会导致整个Test停止执行。

主控函数调用Case函数的详细过程如下:

Err.Clear
On Error Resume Next
call CaseFunctionName
If Err.Number <> 0 Then
  WriteLog Err.Number  '错误码
  WriteLog Err.Description  '错误描述
  WriteLog Err.Source  '错误来源对象,不过好像没啥用
End
Err.Clear
On Error goto 0

function CaseFunctionName()
  msgbox "test 111"
  JavaWindow("111").Close
  msgbox "test 222"
  JavaWindow("222").Close
  msgbox "test 333"
  JavaWindow("333").Close
end function

备注:
如果以Resource->Libraries加载的vbs执行时的错误是无法返回主控的action,可以使用executefile的才可以
通常的做法是动态加载


'executefile "filename.vbs"
'execute "call "& functionname

转载于:https://www.cnblogs.com/b47617/archive/2009/06/11/1501641.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值