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

如何在Jenkins中实现Robot Framework跳过测试用例的重跑

实现Robot Framework跳过测试用例的重跑功能

问题分析

当前Jenkins流水线中配置rerun_failed: "true"仅能重跑**失败(FAIL)的Robot Framework测试用例,而首次执行时因依赖关系被标记为跳过(SKIP)**的用例无法被纳入重跑范围——这是因为Robot Framework原生的--rerunfailed参数仅识别输出文件中标记为失败的用例记录。

解决方案

方法1:通过命令行工具生成自定义重跑列表

  1. 首次测试完成后,解析Robot Framework的output.xml文件,提取所有状态为FAIL和SKIP的用例名称:
    # 用xmllint提取目标用例并写入重跑列表文件
    xmllint --xpath '//testcase[@status="FAIL" or @status="SKIP"]/@name' output.xml | sed 's/ name="\([^"]*\)"/\1\n/g' > rerun_skipped_failed.txt
    
  2. 在Jenkins流水线的重跑阶段,使用--testfile参数指定这个自定义列表执行重跑:
    stage('Rerun Failed & Skipped Tests') {
        when {
            expression { params.rerun_failed == "true" }
        }
        steps {
            sh '''
                robot --testfile rerun_skipped_failed.txt --outputdir rerun_results your_test_suite.robot
            '''
        }
    }
    

方法2:自定义Robot Listener记录需重跑的用例

  1. 编写一个Python监听脚本,在测试结束后自动收集失败和跳过的用例:
    from robot.api import ExecutionResult
    
    class RerunSkippedCollector:
        def close(self):
            result = ExecutionResult('output.xml')
            target_tests = []
            # 递归遍历所有测试套件和用例
            def traverse_suite(suite):
                for test in suite.tests:
                    if test.status in ('FAIL', 'SKIP'):
                        target_tests.append(f"{suite.longname}.{test.name}")
                for sub_suite in suite.suites:
                    traverse_suite(sub_suite)
            traverse_suite(result.suite)
            # 写入重跑列表文件
            with open('rerun_targets.txt', 'w') as f:
                f.write('\n'.join(target_tests))
    
  2. 首次执行测试时加载该监听脚本:
    robot --listener RerunSkippedCollector.py your_test_suite.robot
    
  3. 重跑阶段读取生成的rerun_targets.txt执行用例即可

额外优化

重跑完成后,可以用rebot命令合并首次和重跑的测试结果,生成统一报告:

rebot --merge output.xml rerun_results/output.xml --output final_output.xml

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 09:35:23