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

Jenkins无法并行触发多构建步骤求助:Robot Framework用例并行失败

Jenkins中Robot Framework用例并行执行问题解决指南

你当前遇到的核心问题是:同一个Jenkins构建内的多个构建步骤默认是串行执行的——哪怕你的Slave节点配置了2个执行器,Jenkins也会按顺序跑完当前构建的所有步骤,不会将同一构建内的步骤分配到不同执行器并行处理。这就是为什么Set1执行完成后才会启动Set2的原因。

下面给你三种可行的解决方案,按灵活性和实用性排序:

方案1:使用Jenkins Pipeline并行阶段(最推荐,统一管理)

如果你的项目还不是Pipeline类型,建议切换为Pipeline,它对并行任务的支持更灵活。你可以把两个Robot命令放到parallel块中,让Jenkins自动利用Slave的空闲执行器并行执行。

示例适配Windows环境的Pipeline脚本:

pipeline {
    agent { label '你的Slave节点名称' }
    stages {
        stage('并行执行RF测试用例') {
            parallel {
                stage('执行Set1(group1标签)') {
                    steps {
                        bat '''
robot -d results/set1 -i group1 -P path/fldr1/fldr2:path/fldr3/fldr4:C:/Python27/Lib/site-packages "path\\fldr5\\fldr6\\fldr7"
                        '''
                    }
                }
                stage('执行Set2(group2标签)') {
                    steps {
                        bat '''
robot -d results/set2 -i group2 -P path/fldr1/fldr2:path/fldr3/fldr4:C:/Python27/Lib/site-packages "path\\fldr5\\fldr6\\fldr7"
                        '''
                    }
                }
            }
        }
    }
    post {
        always {
            // 可选:统一收集两个任务的测试报告
            junit 'results/**/output.xml'
            publishHTML(target: [
                allowMissing: false,
                keepAll: true,
                reportDir: 'results',
                reportFiles: '**/report.html',
                reportName: 'Robot Framework并行测试报告'
            ])
        }
    }
}

⚠️ 注意:一定要给两个任务设置独立的输出目录(比如results/set1和results/set2),避免同时写入同一目录导致文件冲突。

方案2:创建两个独立的Jenkins项目(简单直接)

如果不想使用Pipeline,可以拆分出两个独立的Freestyle项目:

  • 项目1:配置构建步骤为执行Set1的Windows批处理命令,指定-d results_set1作为输出目录
  • 项目2:配置构建步骤为执行Set2的Windows批处理命令,指定-d results_set2作为输出目录

然后通过以下方式触发并行执行:

  • 手动同时点击两个项目的「立即构建」按钮
  • 创建一个「触发调度项目」,添加「构建其他项目」的步骤,勾选允许不稳定构建,同时指定项目1和项目2,实现一键触发并行构建

两个独立项目会分别占用Slave的一个执行器,自然实现并行运行。

方案3:使用Robot Framework原生并行工具pabot

如果不想依赖Jenkins的并行配置,可以用RF官方的并行执行工具pabot,在单个命令内实现多进程并行。

操作步骤:

  1. 先在Slave节点的Python环境中安装pabot:
pip install pabot

(确保使用的是Jenkins Slave配置的C:/Python27环境)

  1. 将原有的两个构建步骤合并为一个Windows批处理命令:
pabot --processes 2 --outputdir results --include group1 --include group2 --pythonpath path/fldr1/fldr2:path/fldr3/fldr4:C:/Python27/Lib/site-packages "path\fldr5\fldr6\fldr7"
  • --processes 2:指定用2个进程并行执行
  • 如果需要更精准地按分组拆分任务,可以添加--testlevelsplit参数,确保group1和group2的用例同时启动

通用注意事项

  • 无论用哪种方案,都要保证并行任务的输出目录不重叠,否则会出现日志、报告文件被覆盖的问题
  • 再次确认Slave节点的执行器数量:进入Jenkins「管理节点」→ 选中你的Slave → 「配置」→ 「执行器数量」设置为2,且节点处于在线状态

内容的提问来源于stack exchange,提问作者mo-ta-to

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 06:22:33