yabest 发表于 2007-9-14 13:49:50

原帖由 ppent 于 2007-9-14 12:02 发表 http://bbs.51testing.com/images/common/back.gif
这帖子非顶不可,学习到不少东西,特别是错误处理策略。送朵花表示感谢。
yabest研究的很深入,是我的偶像。


怎么才送一朵啊sdlkfj5

[ 本帖最后由 yabest 于 2007-9-14 13:51 编辑 ]

jackymail 发表于 2007-9-14 15:25:18

我自来这论坛以后,除了3个鸡蛋,什么都没得到过。被人用光200多积分。从高级战友一夜变成新手上路。

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

原帖由 yabest 于 2007-9-14 13:49 发表 http://bbs.51testing.com/images/common/back.gif



怎么才送一朵啊sdlkfj5

yabest 发表于 2007-9-14 15:41:35

原帖由 jackymail 于 2007-9-14 15:25 发表 http://bbs.51testing.com/images/common/back.gif
我自来这论坛以后,除了3个鸡蛋,什么都没得到过。被人用光200多积分。从高级战友一夜变成新手上路。

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



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

看来你前途大大的!要坚持!我是很看好你的!!!sdlkfj3

vaguely 发表于 2007-9-14 15:51:06

我到现在在才明白花是要买的。可是我一分钱都没有sdlkfj9
不知道在这里前要怎么赚,除了卖帖子(我不喜欢)

yabest 发表于 2007-9-14 15:56:32

原帖由 vaguely 于 2007-9-14 15:51 发表 http://bbs.51testing.com/images/common/back.gif
我到现在在才明白花是要买的。可是我一分钱都没有sdlkfj9
不知道在这里前要怎么赚,除了卖帖子(我不喜欢)

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

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

[ 本帖最后由 yabest 于 2007-9-14 15:58 编辑 ]

ppent 发表于 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调用,该错误处理控制也无效。

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

木卫十二 发表于 2007-10-11 14:31:20

嗯,跟楼上有相似的问题。。
我的错误处理是用Recovery Scenario调用处理错误的Function来进行的,也有一些缺陷。
正琢磨着更好的办法。。。

yabest 发表于 2007-10-11 15:39:44

原帖由 ppent 于 2007-10-11 11:59 发表 http://bbs.51testing.com/images/common/back.gif
...
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都可以捕获函数里发生的错误的!

yabest 发表于 2007-10-11 15:42:46

原帖由 木卫十二 于 2007-10-11 14:31 发表 http://bbs.51testing.com/images/common/back.gif
嗯,跟楼上有相似的问题。。
我的错误处理是用Recovery Scenario调用处理错误的Function来进行的,也有一些缺陷。
正琢磨着更好的办法。。。

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

木卫十二 发表于 2007-10-11 16:21:48

恢复场景有很大的局限性,只能对特定对象的错误操作,如我的项目一般错误会弹出对话框,就是用它处理的。。

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

ppent 发表于 2007-10-11 16:25:51

原帖由 yabest 于 2007-10-11 15:39 发表 http://bbs.51testing.com/images/common/back.gif


怎么叫错误控制处理无效呢?函数不管是放在vbs文件里,还是放在action里,通过On Error Resume Next/On Error goto 0方式调用函数,主控Test都可以捕获函数里发生的错误的!
奇怪了,在我的脚本中,只有当前Test的function call才能正确的处理错误,如果放到VBS中就直接停止了。Test Settings的错误处理是stop run。
yabest,是否还有其他地方需要设置?

ppent 发表于 2007-10-11 16:31:57

我的脚本:Q
'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

danmy 发表于 2007-10-11 17:22:19

QTP自带的Recovery Scenario其实就是很好的错误处理的方式,可以自己写一个错误处理函数,出错由场景判断.

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

hsjzfling 发表于 2007-10-11 17:22:30

这两周一直在找这篇帖子没找到,现在总算发现了,这么好的帖子不可不顶,收藏+学习~

yabest 发表于 2007-10-12 16:53:09

原帖由 ppent 于 2007-10-11 16:25 发表 http://bbs.51testing.com/images/common/back.gif

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

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

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

jifeng 发表于 2008-8-29 13:38:15

好贴,顶起

zte_boy 发表于 2008-8-29 14:22:46

Resource->Libraries加载的vbs执行时的错误是无法返回主控的action,只要executefile的才可以
通常的做法是动态加载
executefile filename
execute "call "& functionname

lin85210 发表于 2008-10-30 15:04:58

看了看,绝对经典。楼主,谢谢你

daren_liu 发表于 2008-10-31 17:51:30

:victory:

walker1020 发表于 2009-4-19 20:36:49

此帖对QTP出错处理讨论地非常深入,值得仔细研究和学习。
页: 1 2 [3] 4
查看完整版本: 请教一个QTP出错处理的问题(和yabest的框架有关)