51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2038|回复: 8
打印 上一主题 下一主题

[原创] 求助关于QTP中的Function的错误处理

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2013-1-14 15:16:12 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
从使用灵活性上考虑,我比较喜欢使用Function去组织脚本,然后在Action里面调用function完成测试。但有个困扰我的问题就是如果Function里面有N条:"对象.方法"的语句需要执行。怎么做到其中一条语句执行失败(比如找不到对象)的情况下,直接exit fucntion。因为如果使用On error resume next的话,在执行某条语句失败后,后面的语句仍然会执行,而往往这个时候这些执行已经没有意义了。只会浪费测试时间。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

  • TA的每日心情
    无聊
    2018-9-27 10:05
  • 签到天数: 36 天

    连续签到: 1 天

    [LV.5]测试团长

    9#
    发表于 2013-1-15 10:16:23 | 只看该作者
    回复 6# tanky


        嗯,懂你的意思,不过貌似QTP中不能使用GoTo啊。
    多做判断,和用用场景恢复吧。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
    发表于 2013-1-15 10:16:05 | 只看该作者
    同意楼上,只能场景恢复比较适合了
    也可以在经常出错的对象操作前增加判断,脚本的容错性还是很重要的
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2013-1-15 09:53:28 | 只看该作者
    场景恢复,有试过吗?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
     楼主| 发表于 2013-1-15 09:33:56 | 只看该作者
    回复  tanky


        审帖没办法啊,晚上十点不可能管理员也不可能还在看论坛啊~
    你的这个问题要看是什么 ...
    黑羽祭 发表于 2013-1-15 09:16



        误会了,呵呵!其实我这个帖子的意思是期待QTP能够支持On error goto label的效果。这样我就不用每个对象都来一个exst判断了,这样很费力的。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2018-9-27 10:05
  • 签到天数: 36 天

    连续签到: 1 天

    [LV.5]测试团长

    5#
    发表于 2013-1-15 09:16:54 | 只看该作者
    回复 4# tanky


        审帖没办法啊,晚上十点不可能管理员也不可能还在看论坛啊~
    你的这个问题要看是什么样的情况中止的脚本,如果是控件不存在的问题的话,建议在使用到相应的控件前做个Exist的判断,如果不存在,则写Log、截图、Exit Function。
    如果是别的问题引起的,可以试试场景恢复,但场景恢复对控件不存在这样的问题不会做出反应。
    所以在脚本上,还是尽量考虑全会出现的状况,多跑跑脚本,多写点错误判断。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
     楼主| 发表于 2013-1-15 08:31:20 | 只看该作者
    本帖最后由 tanky 于 2013-1-15 08:51 编辑

    审核速度太坑爹了,我以为没发成功。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
     楼主| 发表于 2013-1-14 22:09:33 | 只看该作者
    本帖最后由 tanky 于 2013-1-14 22:27 编辑
    判断函数执行状态:
    函数内自己判断,并返回值;
    使用err对象,根据err.number来判断是否执行成功(on er ...
    xjwldlover 发表于 2013-1-14 19:41


          这样做是效果上是可行的。但是如果Function里面有N条:对象.方法的语句。我不可能就写N条if语句进行判断吧。VBS不能像VB那样支持on error goto  label  这样的语法。不然这种情况很好处理
        可能还有朋友会建议先遍历所有对象都存在之后再执行脚步。这个方法只适合当所有对象都已经展现在同一个页面的时候才有效。实际上测试过程中很多对象是成功的执行了前面的脚本才会展现在界面上的。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2#
    发表于 2013-1-14 19:41:10 | 只看该作者
    判断函数执行状态:
    函数内自己判断,并返回值;
    使用err对象,根据err.number来判断是否执行成功(on error resume next);
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-7 23:37 , Processed in 0.090508 second(s), 29 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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