QTP中的场景恢复

1、how can we get the status of an action as pass/fail at the end of the action

首先:Create a recovery scenario as below

Triger Event:Test-Run Error

Error:Any Errot

Recovery Operation:

Operation type:Function Call

the function shows as below:


Function actionTrueOrFalse1(Object, Method, Arguments, retVal)
'On error resume next
sCurrentAction=environment.value("CurrentAction")
environment.value(sCurrentAction)="Failed"
environment.Value("RunStatus")="Failed"
End Function
 

然后:create a user-defined environment variable "CurrentAction" with a blank value

in every action,start the action with the code as below


'On error resume next
sCurrentAction=datatable.LocalSheet.Name
sCurrentAction=replace(sCurrentAction," ","_")
sCurrentAction=replace(sCurrentAction," [","_")
sCurrentAction=replace(sCurrentAction," ]","_")

'save the old action name,so that in case we call another action,then the old actionname can not be lost
soldaction=environment.Value("CurrentAction")
msgbox soldaction

environment.Value("CurrentAction")=sCurrentAction
environment.Value(sCurrentAction)="Passed"
'On error goto 0

Dim x
x=2
 window("hwnd:=-1").Exist(0)  'we use the dump step or a statement like:"recovery.Active" at any position to force the activation of the recovery scenario
msgbox x

 

we end every action with the code as given below

soldaction=environment.Value("CurrentAction")
datatable("status",dtGlobalSheet)=environment.Value(sCurrentAction)

 

then check the result file,you will find the result in the runtime datatable,as shown below

 

2、In errors occurs,how to capture the errors picture using recovery scenario

we can use the function as below

Function MapCapture2(Object, Method, Arguments, retVal)
Dim PathWay,myTime,FileName
     PathWay="D:\cora\QTP\DCSAutomation\DCS\ErrorScreenCapture\"
     myTime=now( )
    TimeStamp=year(myTime)&month(myTime)&day(myTime)&hour(myTime)&minute(myTime)&second(mytime)
     FileName=PathWay&TimeStamp&".bmp"
     Desktop.CaptureBitmap FileName
End Function

 

 3,error handling
'example1
On error resume next
Call ErrorFunc()
If Err.number<>0 Then
 msgbox "Error occured inside function"
End If

Public Function ErrorFunc()
  x=3/0
 msgbox "Function completed"
'End Function


'example2
Dim globalErrHander
Function FunWithError()
   Dim x,y
   x=2+4
   y=x-2-4
   x=x/y
End Function

Function FunWithErrHanlder()
   On error resume next
   Call FunWithError()
   If Err.Number<>0 Then
    Call globalErrHander()
   End If
End Function

public Function OnErrorGoTo(byval FunctionName)
 Set globalErrHander=GetRef(FunctionName)
End Function

Function errHandler()
   msgbox "Source="&Err.Source&",#="&"err.number"&",Desc="&err.description
End Function

OnErrorGoTo "errHandler"
Call FunWithErrHanlder()


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值