xueboy118 发表于 2008-7-1 09:38:53

(无人职守状态)QTP执行脚本,如何跳过当前错误,记录错误并执行后续的脚本

前提条件:一个系统,有N多模块,使用QTP按照模块,或是按照软件的功能录制成N个单独可调用的脚本
问题:在无人职守的状态下,让QTP回放这些脚本,在回放的过程中,如果QTP遇到错误(如页面对象找不到或是别的错误),怎么处理,才能让QTP跳过当前错误,继续执行后续的脚本,并把当前的错误记录到报告中?

vickywang_no1 发表于 2008-7-1 10:00:15

顶,正想知道。

zte_boy 发表于 2008-7-1 10:15:45

三种方式:
1、全局错误处理机制
2、场景恢复机制
3、VBS错误处理机制

可以结合使用,具体用法,你可以自己去试下

xueboy118 发表于 2008-7-1 10:30:47

原帖由 zte_boy 于 2008-7-1 10:15 发表 http://bbs.51testing.com/images/common/back.gif
三种方式:
1、全局错误处理机制
2、场景恢复机制
3、VBS错误处理机制

可以结合使用,具体用法,你可以自己去试下
能否具体的说一下,具体改怎么实现,或是给个示例也行,谢谢了

陈能技 发表于 2008-7-1 14:32:52

可以用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关联在一起。

allanhtt 发表于 2008-10-9 16:31:08

原帖由 zte_boy 于 2008-7-1 10:15 发表 http://bbs.51testing.com/images/common/back.gif
三种方式:
1、全局错误处理机制
2、场景恢复机制
3、VBS错误处理机制

可以结合使用,具体用法,你可以自己去试下

大哥啊~~怎么不说具体点啊~~我只知道用recovery scenario wizard 向导设置,然后就是用楼上 朋友的VBS文件,另外2中方法就不得而知了,还望大哥您指点下啊~~谢谢
页: [1]
查看完整版本: (无人职守状态)QTP执行脚本,如何跳过当前错误,记录错误并执行后续的脚本