51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3141|回复: 14
打印 上一主题 下一主题

[原创] 脚本运行中随机产生错误如何处理

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-9-1 11:28:45 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
如一个脚本可能在脚本的某一处随机出现错误.这样脚本就不运行了.
问题
  当出现不可预测的错误,但是我想继续正常下一步骤如何实现?
         
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

15#
发表于 2008-9-2 18:04:43 | 只看该作者
on error resume next
...
回复 支持 反对

使用道具 举报

该用户从未签到

14#
 楼主| 发表于 2008-9-2 15:02:15 | 只看该作者
非常感谢LS 我在实验下
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2008-9-2 12:05:31 | 只看该作者
我转述一下我的理解你看是不是:
“你知道错误的位置,但不知道是什么错误(希望记录下错误吗?)
发生了错误以后,希望从错误代码下一行继续执行。”

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

使用道具 举报

该用户从未签到

12#
 楼主| 发表于 2008-9-2 10:48:03 | 只看该作者
概括下我的问题是出现一些异常错误并且这 些错误我不能预料到结果,但是我知道发生在哪一行,那么如何处理???
比如现在我只有一个action 在这个action的24行 30行处有可能会发生一些异常错误,这些错误是我不能预计的,也就是错误的情况我也不是很清楚,假设出现错误我想继续完成接下来的代码内容.如和实现?
如果你要说使用场景那么假设现在我发现很多地方都可能出现错误,那么到处使用场景忙的过来吗?而且很是麻烦?
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2008-9-1 18:16:10 | 只看该作者
原帖由 lingxin5013 于 2008-9-1 16:27 发表
LS很辛苦 谢谢! 但这都不是我要的效果 仍然感谢!
LS的LS 你使用全局的方法总会在一些场合不食用但是仍然感谢

lz想要的是啥效果啊?
settings是对单个脚本起作用的
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2008-9-1 17:31:31 | 只看该作者
原帖由 lingxin5013 于 2008-9-1 16:27 发表
LS很辛苦 谢谢! 但这都不是我要的效果 仍然感谢!
LS的LS 你使用全局的方法总会在一些场合不食用但是仍然感谢


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

你在4楼的描述仍然不够清晰。
回复 支持 反对

使用道具 举报

该用户从未签到

9#
 楼主| 发表于 2008-9-1 16:27:44 | 只看该作者
LS很辛苦 谢谢! 但这都不是我要的效果 仍然感谢!
LS的LS 你使用全局的方法总会在一些场合不食用但是仍然感谢
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2008-9-1 15:41:22 | 只看该作者
原帖由 lingxin5013 于 2008-9-1 12:09 发表
我的意思就是单个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 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2008-9-1 15:28:16 | 只看该作者
最简单的方式就是设置一下:
File->Settings
run选项卡

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2008-9-1 14:40:59 | 只看该作者
详细点
回复 支持 反对

使用道具 举报

该用户从未签到

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


on error resume next or

on error goto [Line number]
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2008-9-1 12:09:25 | 只看该作者
我的意思就是单个ACTION内运行错误,与下一个ACTION无关,每个ACTION没有影响,我会在一个业务结束后结束场景.
所以我的意思就是你指的无意义的那种,第一种
假设我现在有5个CASE每个CASE中都出现了随机的错误导致无法运行,但是这些错误不是我预见的,但我知道这个地方可能出现错误.如何处理?
非常感谢LS
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2008-9-1 12:00:00 | 只看该作者
这个要看你的函数的组织形式了,你的意思是单个case内错误了还要继续运行这个case,还是但一个case出错后退出运行下一个case?
个人觉得前者没有意义
后者可以利用动态执行函数的方法加上on error resume next和on error goto 0 在主控action中来控制
当然,要求业务脚本用function形式组织
回复 支持 反对

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2008-9-1 11:54:21 | 只看该作者
高手帮忙
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-23 11:53 , Processed in 0.076170 second(s), 29 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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