51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1666|回复: 9
打印 上一主题 下一主题

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

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 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

现在希望能有一个全局错误控制,能从出错点直接跳出到主控层的下一步,希望高手指教一下,谢谢
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2008-11-17 17:34:36 | 只看该作者
自己顶一下,期待高手解决
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2008-11-18 08:58:01 | 只看该作者
再顶一下
期待有人能给点建议~~~
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    4#
    发表于 2008-11-18 12:51:56 | 只看该作者
    设置一个自定义的环境变量,根据它的值来决定再运行哪个Action。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

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

    使用道具 举报

    该用户从未签到

    6#
     楼主| 发表于 2008-11-18 15:28:22 | 只看该作者

    回复 4# 的帖子

    不太明白~~
    能不能说的具体点,谢过了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
     楼主| 发表于 2008-11-18 16:14:14 | 只看该作者

    回复 5# 的帖子

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

    使用道具 举报

    该用户从未签到

    8#
    发表于 2008-11-18 23:57:34 | 只看该作者
    原帖由 cyt6983115 于 2008-11-18 16:14 发表
    根据目前脚本的架构,必须得做成这样
    对于第三种方法,因为现在对于错误的出现的地方是无法预知的,所以对于这全局变量是无法把握和赋值的
    目前的想法是比如现在执行的脚本Action8中的Action6和Action7当执行Action6的 ...


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

    使用道具 举报

    该用户从未签到

    9#
     楼主| 发表于 2008-11-19 16:40:39 | 只看该作者
    原帖由 gy21st 于 2008-11-18 23:57 发表


    正是因为错误无法预知所以要你使用错误恢复处理中的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


    请指点一二,万分感谢
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
     楼主| 发表于 2008-11-19 16:51:33 | 只看该作者
    再顶一下
    就是如果是单独的一个Test就不会出现死机状态
    如果是多层嵌套Action(就像一楼说的那种)就会出现
    快崩溃~~
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-28 02:37 , Processed in 0.065227 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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