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

如何在Jenkins中实现Python脚本的并行构建?

方案1:基于Execute Shell的实现方案

直接在原有execute shell模块中替换为以下代码即可实现并行执行,核心原理是将脚本丢入后台运行,再统一等待所有进程执行结束、校验执行结果:

# 初始化失败计数
FAIL_COUNT=0

# 并行启动所有测试脚本,记录进程ID
python test1.py &
PID1=$!
python test2.py &
PID2=$!
python test3.py &
PID3=$!
python test4.py &
PID4=$!

# 逐个等待进程结束,统计失败任务数
wait $PID1 || FAIL_COUNT=$((FAIL_COUNT+1))
wait $PID2 || FAIL_COUNT=$((FAIL_COUNT+1))
wait $PID3 || FAIL_COUNT=$((FAIL_COUNT+1))
wait $PID4 || FAIL_COUNT=$((FAIL_COUNT+1))

# 存在失败任务则标记构建失败
if [ $FAIL_COUNT -gt 0 ]; then
    echo "共有${FAIL_COUNT}个测试脚本执行失败"
    exit 1
fi

该方案优势是无需调整Jenkins任务的原有配置结构,改造成本极低;缺陷是多个脚本的运行日志会混杂输出,无法单独查看单个脚本的执行状态,问题排查难度较高。

方案2:Jenkins原生并行构建策略(更推荐)

如果可以将现有自由风格任务调整为Pipeline类型任务,使用Jenkins内置的并行语法可获得更稳定的效果:

pipeline {
    agent any
    stages {
        stage('并行测试') {
            parallel {
                stage('test1.py') {
                    steps {
                        sh 'python test1.py'
                    }
                }
                stage('test2.py') {
                    steps {
                        sh 'python test2.py'
                    }
                }
                stage('test3.py') {
                    steps {
                        sh 'python test3.py'
                    }
                }
                stage('test4.py') {
                    steps {
                        sh 'python test4.py'
                    }
                }
            }
        }
    }
}

该方案支持每个脚本的日志独立隔离、执行状态单独展示,默认所有脚本执行完成后才会进入后续阶段,任意脚本执行失败都会标记整体阶段失败,还可通过添加failFast true配置实现任意脚本失败后立即终止所有并行任务,节省资源。

如果不想改Pipeline,也可以使用Jenkins多配置项目(Matrix Project)插件,通过配置多维度参数对应4个测试脚本,也可以实现并行执行效果。

内容的提问来源于stack exchange,提问作者박인권

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 01:12:00