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()