lingxin5013 发表于 2008-9-1 11:28:45

脚本运行中随机产生错误如何处理

如一个脚本可能在脚本的某一处随机出现错误.这样脚本就不运行了.
问题
  当出现不可预测的错误,但是我想继续正常下一步骤如何实现?
         

lingxin5013 发表于 2008-9-1 11:54:21

高手帮忙

zte_boy 发表于 2008-9-1 12:00:00

这个要看你的函数的组织形式了,你的意思是单个case内错误了还要继续运行这个case,还是但一个case出错后退出运行下一个case?
个人觉得前者没有意义
后者可以利用动态执行函数的方法加上on error resume next和on error goto 0 在主控action中来控制
当然,要求业务脚本用function形式组织

lingxin5013 发表于 2008-9-1 12:09:25

我的意思就是单个ACTION内运行错误,与下一个ACTION无关,每个ACTION没有影响,我会在一个业务结束后结束场景.
所以我的意思就是你指的无意义的那种,第一种
假设我现在有5个CASE每个CASE中都出现了随机的错误导致无法运行,但是这些错误不是我预见的,但我知道这个地方可能出现错误.如何处理?
非常感谢LS

fengmingbao 发表于 2008-9-1 12:18:42

原帖由 zte_boy 于 2008-9-1 12:00 发表 http://bbs.51testing.com/images/common/back.gif
这个要看你的函数的组织形式了,你的意思是单个case内错误了还要继续运行这个case,还是但一个case出错后退出运行下一个case?
个人觉得前者没有意义
后者可以利用动态执行函数的方法加上on error resume next和on ...

on error resume next or

on error goto

lingxin5013 发表于 2008-9-1 14:40:59

详细点

rcpp 发表于 2008-9-1 15:28:16

最简单的方式就是设置一下:
File->Settings
run选项卡

出错的处理可以自己选择
可以错误弹出框、停止运行、继续下一步语句、继续下一次action循环

hsjzfling 发表于 2008-9-1 15:41:22

原帖由 lingxin5013 于 2008-9-1 12:09 发表 http://bbs.51testing.com/images/common/back.gif
我的意思就是单个ACTION内运行错误,与下一个ACTION无关,每个ACTION没有影响,我会在一个业务结束后结束场景.
所以我的意思就是你指的无意义的那种,第一种
假设我现在有5个CASE每个CA ...

1. 对于在脚本的某个位置可能出现某种异常的情况,并且可以预知对这类异常的通用处理方法,这时可以用Exist方法,或者对某个对象的某个属性进行检查。 举个例子,已知在脚本某处可能会弹出某些异常的对话框,但只要点掉就行,并不影响程序运行,这时就能用Exist。

2. 单个Action内运行错误,希望结束掉本Action去执行下一个Action,这就轮到场景恢复(Scenario Recovery)功能大显身手了。新建一个场景,On Error的时候才启用,场景恢复的方式就是调用一个函数,来ExitAction,就能实现目的。
当然,场景恢复的功能并不局限于此,它也能对每一步执行后的状态进行校验,一旦满足了预先设定的某个条件,那么就可以执行预先设定好的步骤,使得测试能继续进行。

3. 程序中不确定的异常较多,或者懒得去对单个错误进行控制,那么可以用一种通用的野蛮的错误处理,即只要有一步执行出错,就结束本Test,去执行下一个Test Case。具体方法很多人都说过很多次了,不再赘述。

BTW,俺也是懒人,所以一直用第3种方法咯~

[ 本帖最后由 hsjzfling 于 2008-9-1 15:43 编辑 ]

lingxin5013 发表于 2008-9-1 16:27:44

LS很辛苦 谢谢! 但这都不是我要的效果 仍然感谢!
LS的LS 你使用全局的方法总会在一些场合不食用但是仍然感谢

hsjzfling 发表于 2008-9-1 17:31:31

原帖由 lingxin5013 于 2008-9-1 16:27 发表 http://bbs.51testing.com/images/common/back.gif
LS很辛苦 谢谢! 但这都不是我要的效果 仍然感谢!
LS的LS 你使用全局的方法总会在一些场合不食用但是仍然感谢

那就再详细点描述你想要的效果好了

你在4楼的描述仍然不够清晰。

rcpp 发表于 2008-9-1 18:16:10

原帖由 lingxin5013 于 2008-9-1 16:27 发表 http://bbs.51testing.com/images/common/back.gif
LS很辛苦 谢谢! 但这都不是我要的效果 仍然感谢!
LS的LS 你使用全局的方法总会在一些场合不食用但是仍然感谢
lz想要的是啥效果啊?
settings是对单个脚本起作用的

lingxin5013 发表于 2008-9-2 10:48:03

概括下我的问题是出现一些异常错误并且这 些错误我不能预料到结果,但是我知道发生在哪一行,那么如何处理???
比如现在我只有一个action 在这个action的24行 30行处有可能会发生一些异常错误,这些错误是我不能预计的,也就是错误的情况我也不是很清楚,假设出现错误我想继续完成接下来的代码内容.如和实现?
如果你要说使用场景那么假设现在我发现很多地方都可能出现错误,那么到处使用场景忙的过来吗?而且很是麻烦?

rcpp 发表于 2008-9-2 12:05:31

我转述一下我的理解你看是不是:
“你知道错误的位置,但不知道是什么错误(希望记录下错误吗?)
发生了错误以后,希望从错误代码下一行继续执行。”

如果是上面这种,对脚本内可以用On Error Resume Next
针对不含调用的脚本,这样做跟在settings里when error occurs during run session设置为proceed to next step等效

lingxin5013 发表于 2008-9-2 15:02:15

非常感谢LS 我在实验下

centurystone 发表于 2008-9-2 18:04:43

on error resume next
...
页: [1]
查看完整版本: 脚本运行中随机产生错误如何处理