51Testing丛书连载:(三十二)精通QTP——自动化测试技术领航

发表于:2012-1-19 11:07

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:余杰 赵旭斌    来源:51Testing软件测试网

分享:

  5.循环控制语句

  循环控制语句共分For……Next循环、For……Each循环、Do……While循环、Do……Until循环、While循环5种形式。

  在使用循环控制语句前,首先要对循环条件进行判断,如果循环次数是有固定次数的,那么使用For……Next循环,其结构为:

For  计数器变量  =  开始计数值  To  最后计数值

   执行循环体

Next

  如果是需要对数组或对象集合中的每一个元素进行判断,则需要使用For……Each循环,其结构为:

For  Each  循环计数变量  In  要查看的对象或数组

   执行处理语句

Next

  注:在上述两种循环中随时可以使用Exit For来退出循环。

  如果希望在条件满足时执行一段代码则使用Do……While语句,结构为:

Do  While  条件

   执行循环体

Loop

  如果希望在条件不满足时执行代码,则使用Do……Until语句,结构为:

Do  Until  条件

   执行循环体

Loop

  注:在这两种循环语句中,是使用Exit Do来退出循环的。

  最后一种循环语句是条件满足时一直执行循环,如下:

While  条件

   执行循环体

Wend

2.1.2.2  错误处理

  引发错误的原因有很多,例如,用户输入了错误类型的值,或者脚本找不到必需的文件或者目录等,可以使用循环技术来处理错误,但是VBS本身也提供了一些基本技术来进行错误的检测和处理。

  (1)最常见的错误是运行时错误,也就是说错误在脚本正在运行的时候发生,是脚本试图进行非法操作的结果,例如,0被当作为除数。在VBS中,任何运行时错误都是严重的,此时,脚本将停止运行,并在屏幕上显示一个错误消息。可以在脚本的开头添加On Error Resume Next这行语句,它可以告诉VBS在运行时跳过发生错误的语句,紧接着执行跟在它后面的语句。这样,一旦发生错误时,该语句将会把相关的错误号、错误描述和相关源代码压入错误堆栈。

  (2)虽然On  Error  Resume  Next语句可以防止VBS脚本在发生错误时停止运行,但是它并不能真正处理错误,要处理错误,需要在脚本中增加一些语句,用来检查错误条件,并在错误发生时处理它。

  VBScript恰好提供了一个对象“err对象”,它有两个方法Clear、Raise,5个属性:description、helpcontext、helpfile、number、source、err对象不用引用实例,可以直接使用,例如:

O Error  Resume  Next 

a = 5 

= 

= a / 

If err.number <> Then 

WScript.echo  err.number &"/"& err.description &"/"& err.source 

End If

  执行一下该脚本,VBS会详细地报出错误信息,如图2-5所示。

图2-5

本文选自《51Testing软件测试作品系列》之九——《精通QTP——自动化测试技术领航》。

本站经人民邮电出版社和作者的授权,近期将进行部分章节的独家连载,敬请期待!

版权声明:51Testing软件测试网获人民邮电出版社和作者授权独家连载本书部分章节。

任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。

相关阅读:

查看本书介绍>>

查看本书更多试读章节连载>>

查看软件测试作品系列其他书籍>>

44/4<1234
《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • 蓝千洛
    2012-12-12 13:48:40

    On Error Resume Next
    a=5
    b=0       
    c=a/b
    If err.number<>0 Then
            WScript.echo  err.number &"/" & err.description & "/" & err.source
    End If
    我写的跟书上一样,为什么VBS没有报出如图2-5所示的错误信息,还是出来了我没找到?

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号