Robot Framework测试用例失败时执行指定关键字及相关问题咨询
Robot Framework 对应需求实现方案
需求1:用例执行过程中一旦检测到错误就触发发送文件、自动终止当前用例
你可以直接使用内置关键字Register Keyword To Run On Failure实现持续错误检测,无需每次手动写单次判断逻辑:
- 用法:在对应测试用例的起始位置注册触发动作即可,后续用例内任意步骤执行失败时,RF会自动执行你注册的发文件关键字,之后终止当前用例执行
*** Test Cases *** 示例测试用例 # 注册失败触发动作:只要后续任何步骤失败,自动执行发送文件逻辑 Register Keyword To Run On Failure 你的自定义发文件关键字 # 后续正常写测试步骤即可,无需额外加判断 步骤1 步骤2 # 如不需要后续步骤触发该逻辑,可取消注册 Unregister Keyword To Run On Failure
需求2:用例步骤失败后继续执行、保留全部报错信息
有两种实现方式可以选择,均不会丢失报错信息:
方式1:全局设置单条用例失败继续执行
Robot Framework 4.0及以上版本支持直接给测试用例设置Continue On Failure属性,该用例所有步骤失败后都会继续执行,所有报错会自动完整记录在RF的日志、报告中,无需额外处理:
*** Test Cases *** 失败后继续执行的用例 [Continue On Failure] Yes 步骤1 # 失败后自动继续跑步骤2 步骤2 步骤3
方式2:手动收集所有报错信息
如果需要把所有报错汇总做后续处理(比如放到通知内容里),可以搭配Run Keyword And Ignore Error使用,该关键字不会吞报错,只是不会主动终止执行,你可以手动捕获报错、打印并存储:
*** Test Cases *** 收集全部报错的用例 ${错误列表}= Create List # 执行步骤1,捕获状态和报错 ${状态} ${报错}= Run Keyword And Ignore Error 步骤1 IF $状态 == 'FAIL' Log ${报错} level=ERROR Append To List ${错误列表} 步骤1报错:${报错} END # 执行步骤2,捕获状态和报错 ${状态} ${报错}= Run Keyword And Ignore Error 步骤2 IF $状态 == 'FAIL' Log ${报错} level=ERROR Append To List ${错误列表} 步骤2报错:${报错} END # 最后统一输出所有报错 Log 本次用例全部报错:${错误列表} level=ERROR
内容的提问来源于stack exchange,提问作者Jean
相关产品推荐
相关产品推荐

