RobotFramework 用例出错后继续操作

出错后退出

    在默认情况下,当一个测试用例中的某个关键字返回错误时,这个测试用例就停止执行剩余的关键字。RF会继续执行下一个用例。这么做的好处是节省时间--反正这里出问题要返回来看了,再继续执行剩下的关键字也没有用了。

出错后继续执行

但是,有时候,我们却需要执行用例中的所有关键字,例如:要获取更多的出错信息、更改某些全局相关的变量、做teardown或者rollback操作等。这时候,我们就可以使用BuiltIn库中的关键字来让特定关键字出错后RF仍然执行用例中剩余关键字。

第一个关键字是:Run Keyword And Continue On Failure

假设我们有个关键字叫做 Mykeyword

我们这样使用:

 Run Keyword And Continue On Failure Mykeyword

 Log 这一句被执行

这样,不管Mykeyword这个关键字是否fail,下一个关键字Log都会被执行。

如果Mykeyword有返回值,我们可以这么使用:


 ${str} Run Keyword And Continue On Failure Mykeyword

 Log ${str} 


获取关键字执行结果后继续执行

    有时候,我们需要获取某个关键字的执行结果,然后根据结果做不同后续操作,这个时候,我们就会用到关键字Run Keyword And Ignore Error 。假设我们要执行一个关键字Mykeyword,关键字有一个返回值。我们可以如下使用:


 ${result} ${returnvalue} Run Keyword And Ignore ErrorMykeyword 

 Log ${result}+${returnvalue}  

Run Keyword And Ignore Error 有2个返回值${result}获取执行结果,值为PASS或者FAIL;${returnvalue}获取Mykeyword的返回值。

TestSuit级别出错处理

有些场合,我们想要在整个testsuit执行结束后根据执行结果做一些特殊操作。这时候,我们就用上了下面几个个关键字:

Run Keyword If All Critical Tests Passed

Run Keyword If All Tests Passed

Run Keyword If Any Critical Tests Failed

Run Keyword If Any Tests Failed

Run Keyword If Test Failed

Run Keyword If Test Passed

Run Keyword If Timeout Occurred


这些关键字有些像Java中的Finally语句,但是略有区别,大家可以在使用的时候细细体会。另外要说的是,这些关键字只能被用到Suit Teardown部分(一般会写到一个用户自定义关键字中,被Suit Teardown调用)。他们的含义通过字面我们已经能够理解,格式也跟上边的两个关键字格式一致,就不一一展开介绍了。

每个用例只做一件事情是一个好习惯。

慎用Test setup和test teardown,善用Suit setup 和 Suit teardown

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 这是一篇描述怎么用 Robot Framework 来编写优秀测试用例的高级指南。 至于如何使用 Robot Fr...
    CC先生之简书阅读 5,399评论 0 13
  • 一、关键字(Keyword)根据架构的区分可分为以下三层结构: 底层关键字、公共层关键字、特性关键字。 底层关键字...
    guitar_当当当阅读 553评论 0 1
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,026评论 19 139
  • 今天居然没有早餐!自己草草煮了碗面条吃了。后来才了解到是因为没有面粉了保姆才不做早餐的。。。。。。菜也没了,面粉也...
    柳夜刀阅读 344评论 0 0
  • 北岛 在我和世界之间 你是海湾,是帆 是缆绳忠实的两端 你是喷泉,是风 是童年清脆的呼喊 在我和世界之间 你是画框...
    小王子的狐狸先森阅读 175评论 0 0