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()
首先: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()
相关文章推荐
- QTP场景恢复机制步骤
- QTP场景恢复
- QTP场景恢复之用例失败自动截图
- QTP的错误恢复场景机制
- QTP 场景恢复– 函数调用
- [原创]QTP场景恢复运用讲解
- QTP中为什么恢复场景(Recovery Scenario)没有被触发?
- QTP 默认场景恢复文件
- QTP - 11-12 (Debugging in QTP ) 调试 & (Recovery Scenarios) 场景恢复
- 【软件测试自动化-QTP系列讲座 38】== 自定义场景恢复RecoveryFunction ==
- 【QTP-场景恢复】Post-Recovery Test Run Options Screen
- QTP场景之恢复增强
- QTP关闭所有的应用程序窗口,场景恢复
- QTP的那些事--场景恢复的使用(加入场景恢复却不起作用)
- QTP场景恢复-Function Call
- QTP恢复场景-处理找不到列表项或菜单的情况
- QTP场景恢复的实践和总结
- Oracle 学习之RMAN(十一)恢复实战场景一
- 非常规数据恢复的几种场景(利用AUL恢复数据)
- 场景的信息保存成xml或json,并恢复场景