基于RF自动化重跑

在Robot Framework中,针对上一次执行的报告(output.xml)重新执行失败用例,最标准且高效的方法是使用内置的 --rerunfailed (或简写 -R)命令行参数。该参数会从指定的输出文件中解析出失败的测试用例列表,并仅执行这些用例。

核心操作步骤

1. 第一次执行(全量执行)

复制代码
robot --output first_run.xml tests/

生成初始报告 first_run.xml

2. 第二次执行(仅执行失败用例)

复制代码
robot --rerunfailed first_run.xml --output rerun.xml tests/

RF会读取 first_run.xml,筛选出状态为 FAIL的用例进行执行,结果输出到 rerun.xml

3. 合并报告(可选,推荐)

复制代码
rebot --merge first_run.xml rerun.xml

将两次执行结果合并为一个最终的 output.xml。在合并报告中,如果用例在重跑中通过,则最终状态显示为 PASS,但日志中会保留第一次失败的记录,便于追溯。

关键参数说明

参数 全称 作用 备注
-R --rerunfailed 指定上一次的 output.xml文件路径 如果该文件中没有失败用例,执行会报错
-o --output 指定本次执行的输出XML文件名 重跑时必须指定与第一次不同的文件名,否则会覆盖原文件
--merge --merge 合并多个结果文件 rebot命令使用,非 robot命令

注意事项

  1. 路径一致性 :重跑命令中的测试路径(tests/)必须与第一次执行时完全一致,否则RF无法定位到对应的测试文件。

  2. 前置条件依赖 :如果失败用例依赖于其他用例的 Suite Setup或前置测试步骤,建议使用 --rerunfailedsuites-S)参数重跑整个失败的测试套件,以确保环境正确初始化。

  3. 错误处理 :如果第一次执行全部通过(first_run.xml中无失败用例),直接使用 -R会抛出 DataError。在脚本化执行时,建议先判断 first_run.xml中是否存在失败用例,再决定是否执行重跑命令。

示例脚本(Shell/Bash)

复制代码
#!/bin/bash
# 第一次执行
robot --output first_run.xml tests/

# 检查退出码,非0表示有失败用例
if [ $? -ne 0 ]; then
    echo "有用例失败,开始重跑..."
    robot --rerunfailed first_run.xml --output rerun.xml tests/
    # 合并报告
    rebot --merge first_run.xml rerun.xml
else
    echo "全部用例通过,无需重跑"
    # 重命名或移动报告
    mv first_run.xml output.xml
fi

通过以上方式,可以有效过滤环境抖动等偶发性失败,提升自动化测试的稳定性。

相关推荐
专注API从业者4 小时前
告别人工盯品!借助 Open Claw 搭建电商商品自动化监控与数据分析系统(完整可运行源码)
大数据·运维·数据库·数据分析·自动化
weixin_403810135 小时前
AI智能体写安卓自动化脚本教程:Cursor/Trae+CLI 实战,自然语言生成代码
android·人工智能·自动化·跨境电商·安卓自动化脚本·多账户运营
爱喝水的鱼丶6 小时前
SAP-ABAP:ABAP 用户出口参数传递与上下文获取:SAP 标准数据读取与交互逻辑实现
运维·性能优化·交互·sap·abap·经验交流·出口
IT大白鼠6 小时前
PentestGPT作为AI运维编排工作流自动化底座的技术架构与应用价值评估
运维·人工智能·自动化·pentestgpt
j7~7 小时前
【Git】《Git 系列指南(二):Git基本操作与 reset 三种模式》
运维·git·git安装·git基本操作·git配置·创建git仓库·git reset三种模式
zzzll11117 小时前
n8n 工作流自动化平台入门指南
运维·自动化
Hrain-AI7 小时前
Anthropic oncall-kit 开源拆解:运维 Agent 落地范式的四基石与权限边界
运维·人工智能·开源
HXDGCL7 小时前
从“转盘困局”到“直线破局”:华创力科技PTS精密分度输送系统如何重塑自动化产线
运维·科技·自动化
戴西软件8 小时前
国内有哪些智能化RPA工具?——从“录数据”到“做判断”,国产数字员工正在重新定义自动化
运维·自动化·rpa
Linux-lucky8 小时前
28-Linux学习之旅之Maven与Nexus制品库
linux·运维·学习·nginx·tomcat·maven