51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

楼主: vaguely
打印 上一主题 下一主题

[求助] 请教一个QTP出错处理的问题(和yabest的框架有关)

[复制链接]

该用户从未签到

41#
发表于 2007-9-14 13:49:50 | 只看该作者
原帖由 ppent 于 2007-9-14 12:02 发表
这帖子非顶不可,学习到不少东西,特别是错误处理策略。送朵花表示感谢。
yabest研究的很深入,是我的偶像。



怎么才送一朵啊sdlkfj5

[ 本帖最后由 yabest 于 2007-9-14 13:51 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

42#
发表于 2007-9-14 15:25:18 | 只看该作者
我自来这论坛以后,除了3个鸡蛋,什么都没得到过。被人用光200多积分。从高级战友一夜变成新手上路。

3个鸡蛋,3个人送的。。。。。

原帖由 yabest 于 2007-9-14 13:49 发表



怎么才送一朵啊sdlkfj5
回复 支持 反对

使用道具 举报

该用户从未签到

43#
发表于 2007-9-14 15:41:35 | 只看该作者
原帖由 jackymail 于 2007-9-14 15:25 发表
我自来这论坛以后,除了3个鸡蛋,什么都没得到过。被人用光200多积分。从高级战友一夜变成新手上路。

3个鸡蛋,3个人送的。。。。。



天降大任,必先苦其心志。。。

看来你前途大大的!要坚持!我是很看好你的!!!sdlkfj3
回复 支持 反对

使用道具 举报

该用户从未签到

44#
 楼主| 发表于 2007-9-14 15:51:06 | 只看该作者
我到现在在才明白花是要买的。可是我一分钱都没有sdlkfj9
不知道在这里前要怎么赚,除了卖帖子(我不喜欢)
回复 支持 反对

使用道具 举报

该用户从未签到

45#
发表于 2007-9-14 15:56:32 | 只看该作者
原帖由 vaguely 于 2007-9-14 15:51 发表
我到现在在才明白花是要买的。可是我一分钱都没有sdlkfj9
不知道在这里前要怎么赚,除了卖帖子(我不喜欢)


“鲜花每束的价格为每朵:0金钱” !!!

小气就认了呗! 不要找借口嘛!sdlkfj8

[ 本帖最后由 yabest 于 2007-9-14 15:58 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

46#
发表于 2007-10-11 11:59:27 | 只看该作者
最近在做一些产品自动化测试的尝试,在研究yabest的这个处理模式时,遇到一些问题。由于对QTP还不能很深入的掌握,因此提出来请教大家,看如何解决。
yabest的这种方式应用于顶层的主控脚本中,在此脚本中通过call function的方式调用"本脚本中"的其他函数。因此,测试用例必须以function的形式出现在主控Test中,才能达到这种局部和全局的错误处理控制效果。
问题1:如果将function统一放到vbs中,则错误控制处理无效(出错时直接stoprun了,不能返回到主控Test)。但将所有的用例以function的形式放到主控Test中不便于维护。
问题2:如果将function换成Action,将用例放到各个usable的Action中,在主控Test调用,该错误处理控制也无效。

那么,怎样的脚本组织方式,才能更好的做到错误处理呢?
回复 支持 反对

使用道具 举报

该用户从未签到

47#
发表于 2007-10-11 14:31:20 | 只看该作者
嗯,跟楼上有相似的问题。。
我的错误处理是用Recovery Scenario调用处理错误的Function来进行的,也有一些缺陷。
正琢磨着更好的办法。。。
回复 支持 反对

使用道具 举报

该用户从未签到

48#
发表于 2007-10-11 15:39:44 | 只看该作者
原帖由 ppent 于 2007-10-11 11:59 发表
...
yabest的这种方式应用于顶层的主控脚本中,在此脚本中通过call function的方式调用"本脚本中"的其他函数。因此,测试用例必须以function的形式出现在主控Test中,才能达到这种局部和全局的错误处理控制效果。
问题1:如果将function统一放到vbs中,则错误控制处理无效(出错时直接stoprun了,不能返回到主控Test)。但将所有的用例以function的形式放到主控Test中不便于维护。
问题2:如果将function换成Action,将用例放到各个usable的Action中,在主控Test调用,该错误处理控制也无效。


怎么叫错误控制处理无效呢?函数不管是放在vbs文件里,还是放在action里,通过On Error Resume Next/On Error goto 0方式调用函数,主控Test都可以捕获函数里发生的错误的!
回复 支持 反对

使用道具 举报

该用户从未签到

49#
发表于 2007-10-11 15:42:46 | 只看该作者
原帖由 木卫十二 于 2007-10-11 14:31 发表
嗯,跟楼上有相似的问题。。
我的错误处理是用Recovery Scenario调用处理错误的Function来进行的,也有一些缺陷。
正琢磨着更好的办法。。。


其实出错后首要的是报告错误原因,恢复处理可以在外层处理。
没有用过Recovery Scenario,但是不知道Recovery Scenario方式能报告发生错误的错误原因吗?
回复 支持 反对

使用道具 举报

该用户从未签到

50#
发表于 2007-10-11 16:21:48 | 只看该作者
恢复场景有很大的局限性,只能对特定对象的错误操作,如我的项目一般错误会弹出对话框,就是用它处理的。。

用所讨论的On error resume next的办法我把函数放在vbs里调用时就不管用了,只能在同一个test 里可用。不知道是不是我的某些设置的问题。
我把一般的出错设置是pop up message box。。。调用时就直接弹出了出错框
回复 支持 反对

使用道具 举报

该用户从未签到

51#
发表于 2007-10-11 16:25:51 | 只看该作者
原帖由 yabest 于 2007-10-11 15:39 发表


怎么叫错误控制处理无效呢?函数不管是放在vbs文件里,还是放在action里,通过On Error Resume Next/On Error goto 0方式调用函数,主控Test都可以捕获函数里发生的错误的!

奇怪了,在我的脚本中,只有当前Test的function call才能正确的处理错误,如果放到VBS中就直接停止了。Test Settings的错误处理是stop run。
yabest,是否还有其他地方需要设置?
回复 支持 反对

使用道具 举报

该用户从未签到

52#
发表于 2007-10-11 16:31:57 | 只看该作者
我的脚本
'Test
Err.Clear
On Error Resume Next
call aa()

If Err.Number <> 0 Then
  WriteLog Err.Number  '错误码
  WriteLog Err.Description  '错误描述
  WriteLog Err.Source  '错误来源对象,不过好像没啥用
End If
Err.Clear
On Error goto 0

'my.vbs
Function aa()
   Browser("FreeQuery").Close                '访问不存在的页面,制造错误
         msgbox "aaa"
End Function
回复 支持 反对

使用道具 举报

该用户从未签到

53#
发表于 2007-10-11 17:22:19 | 只看该作者
QTP自带的Recovery Scenario其实就是很好的错误处理的方式,可以自己写一个错误处理函数,出错由场景判断.

我现在的函数是出错则重复当前操作,连续出错5次stop Test.(因为会有些希望忽略的错误,由别的场景来进行处理,此时这个地方会记录一个错误,处理不及时或许2到3个错误)
日志里记录出错的对象,出错描述,出错对象的参数.
回复 支持 反对

使用道具 举报

该用户从未签到

54#
发表于 2007-10-11 17:22:30 | 只看该作者
这两周一直在找这篇帖子没找到,现在总算发现了,这么好的帖子不可不顶,收藏+学习~
回复 支持 反对

使用道具 举报

该用户从未签到

55#
发表于 2007-10-12 16:53:09 | 只看该作者
原帖由 ppent 于 2007-10-11 16:25 发表

奇怪了,在我的脚本中,只有当前Test的function call才能正确的处理错误,如果放到VBS中就直接停止了。Test Settings的错误处理是stop run。
yabest,是否还有其他地方需要设置?


呵呵,我试了一下,用Resource->Libraries来加载vbs文件,好像有这个问题!

不过我的框架是通用的,所以是用Executefile方法来动态加载vbs文件的,可以正常捕获错误信息,没有问题。
你也可以试试用Executefile方法来加载!
回复 支持 反对

使用道具 举报

该用户从未签到

56#
发表于 2008-8-29 13:38:15 | 只看该作者
好贴,顶起
回复 支持 反对

使用道具 举报

该用户从未签到

57#
发表于 2008-8-29 14:22:46 | 只看该作者
Resource->Libraries加载的vbs执行时的错误是无法返回主控的action,只要executefile的才可以
通常的做法是动态加载
executefile filename
execute "call "& functionname
回复 支持 反对

使用道具 举报

该用户从未签到

58#
发表于 2008-10-30 15:04:58 | 只看该作者
看了看,绝对经典。楼主,谢谢你
回复 支持 反对

使用道具 举报

该用户从未签到

59#
发表于 2008-10-31 17:51:30 | 只看该作者
回复 支持 反对

使用道具 举报

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

    连续签到: 1 天

    [LV.1]测试小兵

    60#
    发表于 2009-4-19 20:36:49 | 只看该作者
    此帖对QTP出错处理讨论地非常深入,值得仔细研究和学习。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-26 03:21 , Processed in 0.077869 second(s), 21 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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