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

Robot Framework如何实现单测试套件通过即标记最终结果为PASS?

实现方案

完全可以实现该需求,不需要修改现有测试用例,推荐使用rebot内置参数即可快速达成目标:

方案1:使用rebot内置--rerunfailedsuccess参数(无需额外代码,优先推荐)

该参数的原生逻辑就是合并多次测试结果时,只要任意一次运行中测试用例执行通过,最终结果就标记为通过,完全匹配你的或逻辑判定要求,操作步骤如下:

  1. 执行两次测试时分别保存独立输出文件,避免结果互相覆盖:
# 执行服务器A的健康检查,结果保存为output_serverA.xml
robot --variable Server_credentials:<ServerA details> --output output_serverA.xml Health_Check_Server.robot
# 执行服务器B的健康检查,结果保存为output_serverB.xml
robot --variable Server_credentials:<ServerB details> --output output_serverB.xml Health_Check_Server.robot
  1. 用rebot合并结果,添加--rerunfailedsuccess参数即可:
rebot --rerunfailedsuccess --output final_output.xml --log final_log.html --report final_report.html output_serverA.xml output_serverB.xml

最终生成的报告/日志会完整保留两台服务器的执行细节,且只要任意一次测试通过,最终结果就标记为PASS,仅当两次测试全失败时才标记为FAIL。

方案2:自定义结果判定逻辑(适用于旧版本RF或者更复杂的规则)

如果你使用的Robot Framework版本较低没有--rerunfailedsuccess参数,也可以通过RF官方提供的ExecutionResult API自己实现判定逻辑,示例代码如下:

from robot.api import ExecutionResult

# 读取两次运行的结果文件
res_a = ExecutionResult("output_serverA.xml")
res_b = ExecutionResult("output_serverB.xml")

# 自定义或逻辑判定
if res_a.statistics.total.passed > 0 or res_b.statistics.total.passed > 0:
    print("健康检查最终结果:PASS")
    exit(0)
else:
    print("健康检查最终结果:FAIL")
    exit(1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 09:54:01