关于错误处理和场景恢复的疑问~~高手指导一下,谢谢
情况是这样的:目前脚本架构采用的是三层架构第一层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
现在希望能有一个全局错误控制,能从出错点直接跳出到主控层的下一步,希望高手指教一下,谢谢 自己顶一下,期待高手解决 再顶一下
期待有人能给点建议~~~ 设置一个自定义的环境变量,根据它的值来决定再运行哪个Action。 1. 错误处理应该和业务逻辑没有关系。但从你的描述来看,似乎要用错误来定义业务逻辑,建议你重新考虑一下用例的结构设计
2.场景恢复完成后错误会清0,无法把错误传入调用者,所以只用QTP本身错误处理机制基本无法实现你的需求。
3.一定要这样做,有最笨的方法。定义全局变量,然后在场景恢复处理中使用functionCall,根据需求处理并更新全局变量的值。每个action的第一行代码判断全局变量的值,决定运行还是直接退出,这样可应该以达到你的目的。
回复 4# 的帖子
不太明白~~能不能说的具体点,谢过了
回复 5# 的帖子
根据目前脚本的架构,必须得做成这样对于第三种方法,因为现在对于错误的出现的地方是无法预知的,所以对于这全局变量是无法把握和赋值的
目前的想法是比如现在执行的脚本Action8中的Action6和Action7当执行Action6的时候无论什么地方出错就跳出Action6
而继续执行Action7
而且你这种方法也从都要遍历每一个Action,包括Action6调用的Action 就是判断全局变量,看是否符合,否则退出,这个用场景恢复中的Proceed to next action or component iteration就可以做到了
不知道我理解的对不
不过还是谢谢你的建议 原帖由 cyt6983115 于 2008-11-18 16:14 发表 http://bbs.51testing.com/images/common/back.gif
根据目前脚本的架构,必须得做成这样
对于第三种方法,因为现在对于错误的出现的地方是无法预知的,所以对于这全局变量是无法把握和赋值的
目前的想法是比如现在执行的脚本Action8中的Action6和Action7当执行Action6的 ...
正是因为错误无法预知所以要你使用错误恢复处理中的functioncall来处理全局变量。
你说的方法和我的描述是两回事。
我曾经有一个帖子是关于QTP错误处理机制的。你仔细理解了再考虑处理方法吧。 原帖由 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
请指点一二,万分感谢 再顶一下
就是如果是单独的一个Test就不会出现死机状态
如果是多层嵌套Action(就像一楼说的那种)就会出现
快崩溃~~
页:
[1]