51Testing软件测试论坛

标题: 求助关于QTP中的Function的错误处理 [打印本页]

作者: tanky    时间: 2013-1-14 15:16
标题: 求助关于QTP中的Function的错误处理
从使用灵活性上考虑,我比较喜欢使用Function去组织脚本,然后在Action里面调用function完成测试。但有个困扰我的问题就是如果Function里面有N条:"对象.方法"的语句需要执行。怎么做到其中一条语句执行失败(比如找不到对象)的情况下,直接exit fucntion。因为如果使用On error resume next的话,在执行某条语句失败后,后面的语句仍然会执行,而往往这个时候这些执行已经没有意义了。只会浪费测试时间。
作者: xjwldlover    时间: 2013-1-14 19:41
判断函数执行状态:
函数内自己判断,并返回值;
使用err对象,根据err.number来判断是否执行成功(on error resume next);
作者: tanky    时间: 2013-1-14 22:09
本帖最后由 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  这样的语法。不然这种情况很好处理
    可能还有朋友会建议先遍历所有对象都存在之后再执行脚步。这个方法只适合当所有对象都已经展现在同一个页面的时候才有效。实际上测试过程中很多对象是成功的执行了前面的脚本才会展现在界面上的。
作者: tanky    时间: 2013-1-15 08:31
本帖最后由 tanky 于 2013-1-15 08:51 编辑

审核速度太坑爹了,我以为没发成功。
作者: 黑羽祭    时间: 2013-1-15 09:16
回复 4# tanky


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


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



    误会了,呵呵!其实我这个帖子的意思是期待QTP能够支持On error goto label的效果。这样我就不用每个对象都来一个exst判断了,这样很费力的。
作者: cellule    时间: 2013-1-15 09:53
场景恢复,有试过吗?
作者: liuxl    时间: 2013-1-15 10:16
同意楼上,只能场景恢复比较适合了
也可以在经常出错的对象操作前增加判断,脚本的容错性还是很重要的
作者: 黑羽祭    时间: 2013-1-15 10:16
回复 6# tanky


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




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2