• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

SilkTest入门快打系列7-异常处理

发布: 2011-3-24 10:20 | 作者: 不详 | 来源: 领测软件测试网采编 | 查看: 21次 | 进入软件测试论坛讨论

领测软件测试网

  我们在入门快打2中也使用了抛出异常的函数raise,那是用户主动抛出通知系统的,而本讲中是系统抛出的。但是他们的结果都一样,如果没有被处理的话,该异常会导致SilkTest的退出。

  未被处理的异常有时候会是一个问题,想象一下,假设你的测试有100步,当测试运行到第10步时,突然测试脚本报一个异常(可能是待测软件的问题,可能是环境的问题,也可能是你编写的脚本的问题),你如果不处理,测试即时终止,那么其后的90步都无法运行。这很可能不是我们期望的结果。

  不要急,在这种情况下,你可以用do…except将可能出现异常的代码段封起来(具体哪些代码段可能出现异常,只能根据你靠经验来判断了),例如:

  view plaincopy to clipboardprint?

  01.Do

  02. OneObject.Click()

  03.except

  04. LogError ("can't click OneObject")

  05.DoSomeOtherThings()

  Do

  OneObject.Click()

  except

  LogError ("can't click OneObject")

  DoSomeOtherThings()

  假如我们执行上面得代码时,OneObject这个对象并没有出现,那么OneObject.Click()这句就会抛出一个异常,没关系,紧接其后的except结构会发现这个异常,并且记录一个Error的log,当except结构中的语句都执行完后,SilkTest将继续正常执行,也就是执行do…except结构之后的DoSomeOtherThings()语句。

  说了这么多,让我们在Cal.t这个会抛出异常的case中引入异常处理机制吧。

  我们改写代码成如下形式:

  [-] winclass Calculator

  [ ] String sResult

  [-] Void ClearResult()

  [ ] 计算器.C.Click()

  [-] void GetResult()

  [ ] sResult = 计算器.CalResult.GetText()

  [-] Void ClickNum1()

  [ ] 计算器.N1.Click()

  [ ] window Calculator Cal

  [-] testcase CalSetAndClear()

  [ ] 计算器.SetActive()

  [-] do //1

  [ ] Cal.ClickNum1() //2

  [ ] //Cal.GetResult() //3

  [ ] Print(Cal.sResult) //4

  [-] except //5

  [ ] Print("Catch an exception") //6

  [ ] Cal.ClearResult()

  [ ] Cal.GetResult()

  [ ] Print(Cal.sResult)

  现在当SilkTest执行到行4时,会抛出一个异常,接着就被其后的except捕获这个异常,打印一句提示后,程序继续运行剩余的三行代码。最终的结果将打印:

  [ ] Catch an exception

  [ ] 0.

  如果你没有注释行3的话,那么当然不会有异常被抛出,那么程序将会正常执行,也就是说except中的语句不会起作用。怎么样,你现在是不是又多了一种操纵silktest脚本的武器?

  

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

22/2<12

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网