51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4079|回复: 11
打印 上一主题 下一主题

[原创] 启动recovery机制的条件是什么?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2006-10-10 11:18:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
运行QTP脚本,我希望能在出现错误的时候执行recovery的恢复机制

设定条件:
  Recovery-->Test Run Error-->Any Error-->Fanction Call-->Proceed to next step

我的脚本:

For i=1 to 10
    err.raise 6                                                                              '产生错误 不能启动recovery
    Browser("fdsafd").page("abc").webedit("afa").Set "test" '对象库没有此对象,产生错误 不能启动recovery
Next
Browser("Administration").Page("Administration").Image("MyCompany").Click  '对像库有对象,运行时产生错误,能启动recovery

实际运行的情况是,第一句第二句我故意产生的错误不能启动recovery机制,而第三句则启用了,我设定的是所有错误均执行场景恢复,为什么会有这样的差别?
另外不知道是不是我记性不好了,这个脚本我在十一之前也运行过,当时的情况是所有的错误都可以正常的执行场景恢复的,十一回来后就变成现在这个情况,设置什么的我想不到有什么不一样的地方,遇到这问题很是迷惑,希望执心人指点帮助。
很乐意提供其它需要的信息^_^
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2006-10-10 11:19:32 | 只看该作者
第一次发帖,不知道是否符合要求,呵呵
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2006-10-10 11:28:13 | 只看该作者
xue xi等待高人讲解。。。
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2006-10-10 15:37:13 | 只看该作者
不要沉啊...............^_^
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2006-10-10 16:21:51 | 只看该作者
在“测试”>“设置”里有没有把恢复场景全部加进去了呢
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2006-10-10 16:35:54 | 只看该作者

如果没加的话最后一个错误不会启用场景恢复
先谢谢版主的关注
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2006-10-11 10:32:55 | 只看该作者
继续等待热心人的帮助.........
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2006-10-12 16:00:09 | 只看该作者
这个问题一直没搞明白
为了解决错误处理的问题,想了些其它的办法
需求:
  使用一个总的组织脚本去组织小脚本里面的可调用Action,当单个Action产生错误的时候,调用错误处理机制(在脚本里面实现,本来打算由Recovery返回错误代码,根据不同的错误代码进行不同的错误处理,在脚本里面进行错误处理的好处是组织脚本可以一级级向上嵌套,使用Recovery则不行),然后再进行后面的Action。不至于出了一个错误后面的Action全部跑不了。

实现:
  在Setting-->run里设置When error occurs during run session:Proceed to next action iteration。
  Recovery的错误代码不能正确返回,Err.description出了Action就清空,只能考虑采用GetLastError来得到错误代码,但由于GetLastError得到的错误代码是VBscript?or windows的错误代码,不能正确的分析得到QTP的错误类型,所以当错误一旦发生,启用环境重启机制(前提是所有的脚本的入口必需一致),以保证后面的脚本能正常的执行下去。


  调用Action比打开新脚本的效率要高很多,由组织脚本来充当入口执行便于并行组织运行大量脚本,如果能做到灵活根据不同的错误进行相应的处理就更好了。

  不知大家有没有更好的想法。希望能得到大家的帮助。
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2006-10-12 17:07:17 | 只看该作者
原帖由 denisye 于 2006-10-10 11:18 发表
运行QTP脚本,我希望能在出现错误的时候执行recovery的恢复机制

设定条件:
  Recovery-->Test Run Error-->Any Error-->Fanction Call-->Proceed to next step

我的脚本:

For i=1 to 1 ...

你的Recovery设置是怎么设的,我记得当运行出错时就执行另一个动作或者运行另一个function
你设置的是什么错,Recovery有好几种错误,你的Trigger Event tab写的是什么?
如果可以,留个联系方式!
回复 支持 反对

使用道具 举报

该用户从未签到

10#
 楼主| 发表于 2006-10-12 17:19:10 | 只看该作者
Recovery的设置就是Recovery-->Test Run Error-->Any Error-->Fanction Call-->Proceed to next step

当运行出错时就执行function
Recovery错误类型选Test Run Error里面的Any Error

我的MSN:denisye@21cn.com
非常高兴能得到版主的指教
同时也很非常欢迎任何对QTP有兴趣的XDJM加我为好友,呵呵

[ 本帖最后由 denisye 于 2006-10-12 17:24 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2006-10-13 12:21:10 | 只看该作者
很奇怪,Recovery只能触发对象库缺少的对象
设置Recovery 的触发条件是any error
由以下情况是不触发的
1)当这个对象不在对象库时,运行出错,不触发Recovery
2)当这个对象存在对象库时,修改运行脚本对象名,使它运行出错,不触发Recovery
以上两种应该包括在any error中的,但有可能Recovery做得不够好,需要改进,本来触发机制就需要支持这样的功能,如果没有就觉得用处不大! (只是自己的看法)
回复 支持 反对

使用道具 举报

该用户从未签到

12#
 楼主| 发表于 2006-10-13 17:32:21 | 只看该作者
同意版主的意见
再次感谢版主的热情帮助,呵呵
最终我还是要采用GetLastError来得到错误信息,不能不说有一点点遗憾,如果还有更好的方法,希望能分享一下,呵呵
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-9-26 05:13 , Processed in 0.095522 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表