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

如何在非Pipeline的Job DSL作业中配置gatlingArchive()?

解决方案:在非Pipeline的Job DSL作业中实现Gatling报告归档

当然可以实现,你之前用的是Pipeline专属的post/stage语法,在Job DSL创建的自由风格作业里不适用。自由风格作业的构建后操作要放在publishers块里,对应Gatling的归档功能有两种配置方式:

方式一:用Job DSL内置的Gatling Publisher方法(如果插件支持)

如果你的Jenkins Gatling插件版本和Job DSL版本适配,直接在publishers里添加gatling配置即可,效果等同于Pipeline里的gatlingArchive():

job("job-my-job") {
    label(...)
    parameters {...}
    wrappers {...}
    scm {...}
    steps {
        // 这里放你的Gatling运行步骤,比如执行mvn gatling:test之类的命令
        shell("mvn gatling:test")
    }
    publishers {
        gatling {
            // 指定Gatling报告的归档路径,默认是target/gatling/*-simulation-*,可按需修改
            reportArchivePatterns("target/gatling/**")
            // 配置总是归档,对应Pipeline里的post.always
            alwaysArchive()
        }
    }
    logRotator(-1, 90)
    configure {...}
}

方式二:用configure块直接修改Jenkins配置(万能兼容)

如果Job DSL没有内置Gatling的publisher方法,就用configure块直接写入Jenkins的底层XML配置,这适配所有版本:

job("job-my-job") {
    label(...)
    parameters {...}
    wrappers {...}
    scm {...}
    steps {
        shell("mvn gatling:test")
    }
    publishers {...} // 保留原有的publishers配置
    logRotator(-1, 90)
    configure { project ->
        // 向publishers节点添加Gatling归档器配置
        project / publishers << 'io.gatling.jenkins.GatlingPublisher' {
            reportArchivePatterns('target/gatling/**')
            alwaysArchive(true)
        }
    }
}

关键说明

Pipeline的post块是流水线语法特有的,自由风格作业的构建后操作统一放在publishers或通过configure配置,不能直接套用Pipeline的语法结构。上面两种方式都能实现不管构建成功失败,都归档Gatling报告的效果,和你想要的post.always { gatlingArchive() }功能完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 01:11:31