您的位置:首页 > 编程语言 > Qt开发

QTP中的场景恢复

2012-07-25 12:55 363 查看
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()

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  function action object file