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

如何在单个Jenkinsfile中配置两个cron任务分别运行回归与冒烟测试套件

实现方案

你可以通过「参数化定时触发器+通用测试执行逻辑」的方式实现需求,不需要大幅改动原有代码,具体修改如下:

前置说明

首先需要安装Jenkins的Parameterized Scheduler插件,支持在定时触发时传入自定义参数,用来区分两种不同的测试套件。如果不想安装插件,也可以配置两个Jenkins任务指向同一个Jenkinsfile,分别设置不同的定时规则和默认参数即可。

修改后的完整Jenkinsfile示例

pipeline {
    agent none
    triggers {
        parameterizedCron('''
            # 每6小时执行回归测试套件,传入回归测试对应的标签
            H */6 * * * % TEST_TYPE=regression;TEST_TAG=regression_all
            # 每4小时执行冒烟测试套件,传入冒烟测试对应的标签
            H */4 * * * % TEST_TYPE=smoke;TEST_TAG=smoke_fast
        ''')
    }
    // 配置手动触发时可选的参数
    parameters {
        choice(
            name: 'TEST_TYPE', 
            choices: ['regression', 'smoke'], 
            description: '选择要执行的测试类型'
        )
        string(
            name: 'TEST_TAG', 
            defaultValue: '', 
            description: '测试用例过滤标签'
        )
    }
    stages {
        stage('运行测试套件') {
            steps {
                script {
                    // 调用原有并行执行方法,传入对应测试标签
                    parallel startParallelTest(params.TEST_TAG)
                }
            }
        }
    }
}

// 原有方法仅需修改为接收testTag入参即可,逻辑保持不变
def startParallelTest(String testTag) {
    def nodeObject = [:]
    // 遍历所有待测试环境,并行执行
    for (env in environments) {
        nodeObject[env] = { -> 
            node('java180u92-maven333') {
                stage("${env}环境-拉取代码") { 
                    checkout scm
                }
                stage("${env}环境-代码编译") { 
                    sh "mvn clean compile"
                }
                // 传入环境和测试标签,触发对应测试套件
                triggerTest(env, testTag)
            }
        }
    }
    return nodeObject
}

def triggerTest(env, testTag) {
    // 原有执行测试的逻辑保持不变,根据传入的testTag区分执行回归/冒烟用例即可
    ....
}

无插件替代方案

如果无法安装Parameterized Scheduler插件,也可以按以下方式实现:

  • 创建两个Jenkins任务,都指向同一个代码仓库的同一个Jenkinsfile
  • 第一个任务配置每6小时的cron规则,默认参数设置为回归测试对应的标签
  • 第二个任务配置每4小时的cron规则,默认参数设置为冒烟测试对应的标签
  • 不需要修改Jenkinsfile的核心执行逻辑,即可实现两套测试套件独立定时运行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 05:24:02