xueboy118 2008-7-1 09:38
(无人职守状态)QTP执行脚本,如何跳过当前错误,记录错误并执行后续的脚本
前提条件:一个系统,有N多模块,使用QTP按照模块,或是按照软件的功能录制成N个单独可调用的脚本
问题:在无人职守的状态下,让QTP回放这些脚本,在回放的过程中,如果QTP遇到错误(如页面对象找不到或是别的错误),怎么处理,才能让QTP跳过当前错误,继续执行后续的脚本,并把当前的错误记录到报告中?
vickywang_no1 2008-7-1 10:00
顶,正想知道。
zte_boy 2008-7-1 10:15
三种方式:
1、全局错误处理机制
2、场景恢复机制
3、VBS错误处理机制
可以结合使用,具体用法,你可以自己去试下
xueboy118 2008-7-1 10:30
[quote]原帖由 [i]zte_boy[/i] 于 2008-7-1 10:15 发表 [url=http://bbs.51testing.com/redirect.php?goto=findpost&pid=1006695&ptid=119021][img]http://bbs.51testing.com/images/common/back.gif[/img][/url]
三种方式:
1、全局错误处理机制
2、场景恢复机制
3、VBS错误处理机制
可以结合使用,具体用法,你可以自己去试下 [/quote]
能否具体的说一下,具体改怎么实现,或是给个示例也行,谢谢了
陈能技 2008-7-1 14:32
可以用Recovery Scenarios来处理这种问题:
1、建立一个外部VBS文件,在里面编写下面的简单脚本
Public Function OnRunStep(ByRef Object, ByRef Method, ByRef Arguments, ByRef Result)
' ...
Reporter.ReportEvent micFail,"Page Not Found!","Page Not Found!"
End Function
或者也可以复杂一点,取决于你想在出现错误时如何处理了,例如下面的函数
Public Function OnPageNoFound(ByVal Object, ByVal Method, ByVal Arguments, ByVal Result)
Desktop.CaptureBitmap "C:\PageOntFoundError.png",True
If Browser("version:=inter.*").Exist = True then
Msgbox Browser("Web Tours").GetROProperty("title")
Msgbox Browser("Web Tours").GetROProperty("openurl")
Else
Msgbox "IE Browser Not Found!"
End IF
End Function
2、然后在QTP中创建一个Recovery Scenarios,创建的方法参考QTP帮助文档,或者参考《QTP自动化测试实践》10.6节。
3、将Recovery Scenarios与Action关联在一起。