Robot Framework:如何存储Keyword返回的布尔值且不触发测试失败
Robot Framework:避免关键字返回False时终止测试,捕获布尔值用于判断
你的问题核心是:当关键字返回False(或触发失败状态)时,Robot Framework默认会终止测试流程,而你需要把这个结果存成变量,在IF分支里做后续处理。
最直接的解决方法:用Run Keyword And Return Status包裹关键字
这个内置关键字的作用是执行目标关键字,返回布尔值表示执行结果,且不会因为目标关键字失败而终止测试:
- 目标关键字执行成功 → 返回
True - 目标关键字执行失败 → 返回
False
修改你的脚本如下:
*** Task *** ${BooleanValue} = Run Keyword And Return Status 你的关键字名称 IF ${BooleanValue} == ${False} # 这里写你要执行的分支逻辑 Log 关键字执行结果为False,进入处理流程 END
两种场景的补充处理
场景1:你的自定义关键字本身就是返回布尔值
如果你的关键字是自行编写的,内部没有断言或Fail语句,只是返回True/False,但测试仍会终止,大概率是你在关键字里用了类似Should Be True这类断言关键字。此时需要修改关键字实现,改成直接返回布尔值:
*** Keywords *** 自定义判断关键字 # 替换原有的断言逻辑,直接计算布尔值返回 ${判断结果}= Evaluate ${待检查值} == 预期值 [Return] ${判断结果}
场景2:需要同时捕获关键字的返回值和执行状态
如果你不仅要知道成功/失败,还要拿到关键字的原始返回值,可以用Run Keyword And Ignore Error,它会返回一个包含状态和返回值的元组:
*** Task *** ${执行状态} ${原始返回值} = Run Keyword And Ignore Error 你的关键字名称 IF ${执行状态} == FAIL Log 关键字执行失败,原始返回值:${原始返回值} END
内容的提问来源于stack exchange,提问作者Aard
相关产品推荐
相关产品推荐

