You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Robot Framework默认不因失败终止执行,无需内置关键字?

如何让Robot Framework执行时不因失败终止(无需逐个添加关键字)

当然可以!如果你不想在每个关键字或测试用例里手动套Run Keyword and Continue on Failure这类关键字,有几种全局级别的方法能实现让测试执行不因为失败就停住,分两种场景给你说明:

场景1:测试套件中,单个用例失败后继续执行其他用例

Robot Framework 默认行为就是如此——除非你主动加了--exitonfailure命令行参数。所以只要别用这个参数,哪怕某个用例跑失败了,后面的用例该咋跑咋跑。

如果之前不小心加了这个参数,执行时去掉就行:

robot your_test_suite.robot

场景2:单个测试用例内部,步骤失败后继续执行后续步骤

这应该是你最关心的需求——不用给每个步骤都套关键字,让用例里的所有步骤哪怕失败了也能继续往下走。Robot Framework本身没有直接的配置开关,但可以通过两种无侵入的方式实现:

方法1:用自定义监听器(推荐,完全不改动业务代码)

你可以写个简单的Python监听器,拦截关键字失败的事件,强制让测试用例继续执行后续步骤。

  1. 创建一个名为ContinueOnFailureListener.py的文件,内容如下:
class ContinueOnFailureListener:
    ROBOT_LISTENER_API_VERSION = 3

    def keyword_failed(self, keyword, result):
        # 告诉Robot Framework:就算当前关键字失败,也继续执行后面的步骤
        result.continue_on_failure = True
  1. 执行测试时,通过--listener参数加载这个监听器就行:
robot --listener ContinueOnFailureListener.py your_test_suite.robot

这样一来,所有测试用例里的任何关键字失败后,用例都会继续跑完剩余步骤,完全不用修改你的业务测试代码。

方法2:全局关键字包装(适合统一管理的项目)

如果你不想用Python写监听器,也可以在资源文件里定义一个通用的包装关键字,然后让所有测试用例用这个关键字来调用业务步骤。不过这种方法需要稍微改下测试用例的结构,胜在不用写额外代码:

  1. 在你的资源文件(比如CommonResources.robot)里定义:
*** Keywords ***
Execute And Continue
    [Arguments]    ${keyword}    @{args}
    Run Keyword And Continue On Failure    ${keyword}    @{args}
  1. 然后在测试用例里,用这个关键字代替直接调用业务关键字:
*** Test Cases ***
Sample Login Test
    Execute And Continue    Open Browser    https://example.com    chrome
    Execute And Continue    Input Text    username_field    test_user
    Execute And Continue    Click Button    login_button

这种方法虽然需要修改测试用例,但可以统一管理错误处理逻辑,后续要调整也方便。

内容的提问来源于stack exchange,提问作者Albert Montes Cobo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 04:09:59