Robot Framework实现任意关键字失败时自动捕获截图
实现Robot Framework任意关键字失败触发截图的方案
默认的Register Keyword To Run On Failure是Selenium库专属的,只会监听Selenium自身关键字的失败,要覆盖所有关键字的失败场景,得改用Robot Framework的全局失败处理机制,具体操作如下:
1. 编写全局失败处理关键字
先定义一个自定义关键字,比如Global Failure Handler,逻辑是先执行截图,再抛出原始错误,避免掩盖问题:
*** Keywords *** Global Failure Handler # 执行截图,用Run Keyword And Ignore Error防止截图失败覆盖原始错误 Run Keyword And Ignore Error Screenshot On Failure # 抛出原本的错误信息 Fail ${ERROR MESSAGE}
2. 注册全局失败处理
有两种方式可以把这个关键字设为全局失败触发的动作:
方式一:命令行启动时指定
执行测试脚本时加上参数:
robot --runonfailure "Global Failure Handler" 你的测试套件.robot
方式二:在测试套件内设置变量
在测试套件的变量区或者套件初始化里设置全局变量:
*** Variables *** ${ROBOT_RUN_ON_FAILURE} Global Failure Handler
或者用套件初始化来设置:
*** Settings *** Suite Setup Set Suite Variable ${ROBOT_RUN_ON_FAILURE} Global Failure Handler
3. 注意事项
- 删掉原来Selenium库的
Register Keyword To Run On Failure Screenshot On Failure语句,避免重复触发截图。 - 如果测试用例包含不涉及浏览器的场景(比如纯接口测试),可以在
Global Failure Handler里增加判断逻辑,比如检查是否有活跃浏览器会话再执行截图,防止额外报错。
内容的提问来源于stack exchange,提问作者badbadllama
相关产品推荐
相关产品推荐

