xue202757 发表于 2010-8-4 17:43:53

什么情况下需要使用Recovery Scenario?

If Window("IBM Lotus Notes_3").Dialog("Security Alert").Exist(3)Then

Window("IBM Lotus Notes_3").Dialog("Security Alert").WinButton("Yes").Click

End If

If Window("IBM Lotus Notes_3").Dialog("SQUARE 3.3").Exist(3) Then

Window("IBM Lotus Notes_3").Dialog("SQUARE 3.3").WinButton("Cancel").Click

End If
像上面的代码完全可以替代Recovery Scenario, 如果使用Recovery Scenario会发现执行起来比用代码慢。请大家讨论一下为什么会比较慢呢?要怎么合理使用Recovery Scenario? 谢谢。

TIB 发表于 2010-8-4 20:13:59

RS主要用于处理那些非预期事件的发生,例如非预期窗口的出现,这些事件往往不定时、不定位置出现

对于可预料的情况,应该直接在脚本中进行判断并处理

由于QTP需要在脚本执行过程中不断检查非预期事件是否出现,所以使用RS的脚本执行会变慢

zzxxbb112 发表于 2010-8-5 09:11:48

脚本执行速度变慢和RS没关系,QTP只有在设置的条件成立时,比方说当出现找不到对象或者出现错误时才会触发RS,在脚本正常执行时是不会触发场景恢复的,更不会一直去检查事件是否出现。至于你说的RS慢是因为非预期的弹出框导致QTP无法正确定位到对象,QTP就会先启动默认同步时间,当同步超时后就会激活错误状态,这时QTP才会启动场景恢复。而你自己写的判断是不会有这个过程的。

TIB 发表于 2010-8-5 13:22:35

Handling an event directly within your test enables you to handle errors more specifically than recovery scenarios, which by nature are designed to handle a more generic set of unpredictable events. It also enables you to control the timing of the corrective operation with minimal resource usage and maximum performance. By default, recovery scenario operations are activated only after a step returns an error. This can potentially occur several steps after the step that originally caused the error. The alternative, checking for trigger events after every step, may slow performance. For this reason, it is best to handle predictable errors directly in your test.

heqingbluesky 发表于 2010-8-5 13:35:32

我目前没有看到使用RS给项目带来的明显好处。我经历过的两个项目都没有使用RS,估计我的水平还没有到吧。:(

17800455 发表于 2010-8-6 09:20:54

回复 5# 的帖子

通常在无人职守的情况下,发生意料之外的错误时,就体现出了RS的好处了。。。。
页: [1]
查看完整版本: 什么情况下需要使用Recovery Scenario?