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
相关产品推荐
相关产品推荐

