cyt6983115 发表于 2008-11-17 17:33:00

关于错误处理和场景恢复的疑问~~高手指导一下,谢谢

情况是这样的:目前脚本架构采用的是三层架构
第一层Action1、Action2、Action3、Action4、   Action5
第二曾Action6(调用第一层的Action1、Action2 )   Action7(调用第一层Action3、Action4、   Action5)
第三层 Action8(调用第二层的Action6、Action7 )

现在在第三层执行Action8 当调用到执行第一层Action1时出错,希望在主控层Action8能立即跳出Action6而继续执行Action7

目前场景恢复中的Proceed to next action or component iteration 是一个个Action退出,比如Action1出错了,就跳出Action1然后执行到Action2,如果Action2出错
就跳出Action2

现在希望能有一个全局错误控制,能从出错点直接跳出到主控层的下一步,希望高手指教一下,谢谢

cyt6983115 发表于 2008-11-17 17:34:36

自己顶一下,期待高手解决

cyt6983115 发表于 2008-11-18 08:58:01

再顶一下
期待有人能给点建议~~~

walker1020 发表于 2008-11-18 12:51:56

设置一个自定义的环境变量,根据它的值来决定再运行哪个Action。

gy21st 发表于 2008-11-18 14:43:36

1. 错误处理应该和业务逻辑没有关系。但从你的描述来看,似乎要用错误来定义业务逻辑,建议你重新考虑一下用例的结构设计
2.场景恢复完成后错误会清0,无法把错误传入调用者,所以只用QTP本身错误处理机制基本无法实现你的需求。
3.一定要这样做,有最笨的方法。定义全局变量,然后在场景恢复处理中使用functionCall,根据需求处理并更新全局变量的值。每个action的第一行代码判断全局变量的值,决定运行还是直接退出,这样可应该以达到你的目的。

cyt6983115 发表于 2008-11-18 15:28:22

回复 4# 的帖子

不太明白~~
能不能说的具体点,谢过了

cyt6983115 发表于 2008-11-18 16:14:14

回复 5# 的帖子

根据目前脚本的架构,必须得做成这样
对于第三种方法,因为现在对于错误的出现的地方是无法预知的,所以对于这全局变量是无法把握和赋值的
目前的想法是比如现在执行的脚本Action8中的Action6和Action7当执行Action6的时候无论什么地方出错就跳出Action6
而继续执行Action7   
而且你这种方法也从都要遍历每一个Action,包括Action6调用的Action   就是判断全局变量,看是否符合,否则退出,这个用场景恢复中的Proceed to next action or component iteration就可以做到了
不知道我理解的对不
不过还是谢谢你的建议

gy21st 发表于 2008-11-18 23:57:34

原帖由 cyt6983115 于 2008-11-18 16:14 发表 http://bbs.51testing.com/images/common/back.gif
根据目前脚本的架构,必须得做成这样
对于第三种方法,因为现在对于错误的出现的地方是无法预知的,所以对于这全局变量是无法把握和赋值的
目前的想法是比如现在执行的脚本Action8中的Action6和Action7当执行Action6的 ...

正是因为错误无法预知所以要你使用错误恢复处理中的functioncall来处理全局变量。
你说的方法和我的描述是两回事。
我曾经有一个帖子是关于QTP错误处理机制的。你仔细理解了再考虑处理方法吧。

cyt6983115 发表于 2008-11-19 16:40:39

原帖由 gy21st 于 2008-11-18 23:57 发表 http://bbs.51testing.com/images/common/back.gif


正是因为错误无法预知所以要你使用错误恢复处理中的functioncall来处理全局变量。
你说的方法和我的描述是两回事。
我曾经有一个帖子是关于QTP错误处理机制的。你仔细理解了再考虑处理方法吧。

我按照你说的方法在functioncall中定义全局变量,在第一次执行出错的时候能调用用到这个场景恢复,但在第二次出错QTP就卡住了(就像死机一样)
Trigger Event :    Test run error
Error:   Object not found
Recovery Operation:    Function Call
functioncall的代码是
Function RecoveryFunction1(Object, Method, Arguments, retVal)
Environment.Value("errorflag")=2
End Function


请指点一二,万分感谢

cyt6983115 发表于 2008-11-19 16:51:33

再顶一下
就是如果是单独的一个Test就不会出现死机状态
如果是多层嵌套Action(就像一楼说的那种)就会出现
快崩溃~~
页: [1]
查看完整版本: 关于错误处理和场景恢复的疑问~~高手指导一下,谢谢