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

Robot Framework:使用Listener中断测试执行遇阻求助

解决Robot Framework Listener中停止测试执行及废弃API替代问题

废弃API的替代方案

你遇到的keywords.create被弃用问题,直接用body.create_keyword替代即可,示例代码如下:

ROBOT_LISTENER_API_VERSION = 3

def start_test(test, result):
    # 替代原keywords.create的写法
    test.body.create_keyword(name='Log', args=['Keyword added by listener!'])

如果要往测试用例的前置/后置操作中添加关键字,逻辑类似:

  • 往测试用例的setup中添加:test.setup.create_keyword(...)
  • 往测试用例的teardown中添加:test.teardown.create_keyword(...)

实现测试执行停止功能

要实现停止整个测试执行,不需要插入关键字,直接在listener中抛出Robot Framework的FatalError异常即可,这会立即终止所有测试运行。示例如下:

首先导入异常类:

from robot.api import FatalError
ROBOT_LISTENER_API_VERSION = 3

# 用全局变量接收tkinter的停止指令
stop_requested = False

def start_keyword(keyword, result):
    global stop_requested
    if stop_requested:
        # 抛出致命错误,立即终止测试执行
        raise FatalError("测试执行被用户手动停止")

# tkinter停止按钮的回调函数
def on_stop_button_click():
    global stop_requested
    stop_requested = True

补充说明

  • 若需要优雅停止(完成当前关键字后再终止),可在end_keyword方法中检查状态,设置result.exit = True,但这种方式仅会结束当前测试用例;要终止整个测试套件,需在end_test或end_suite方法中额外处理。

内容的提问来源于stack exchange,提问作者SomeFrenchGuy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 08:50:26