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

如何配置Gatling对接Jenkins拉取多个Git仓库的性能测试用例执行

多仓库Gatling测试Jenkins Pipeline配置方案

核心思路

你不需要把所有测试用例都放到同一个项目里,只需要维护一个轻量的Gatling执行入口项目,在Pipeline运行时动态拉取多个业务仓库的测试代码合并后执行即可。

前置要求

  • 所有存测试用例的仓库(项目A、项目B)的Gatling版本和入口项目保持完全一致,避免依赖冲突
  • 不同仓库的测试类建议按项目加不同包名前缀,避免类名重复导致执行异常

具体实现步骤

1. 准备Gatling入口项目

这个项目仅包含公共依赖配置,不存储任何业务测试用例:

  • 如果是sbt项目,build.sbt中仅引入Gatling核心插件和公共依赖
  • 如果是maven/gradle项目,同理仅配置公共的Gatling插件和依赖

2. 编写Jenkins Pipeline配置

直接使用如下可参数化的Jenkinsfile即可实现拉取多仓库用例执行的需求:

pipeline {
  agent any
  parameters {
    string(name: 'REPO_A_URL', defaultValue: 'git@你的Git地址/项目A.git', description: '项目A Git仓库地址')
    string(name: 'REPO_A_BRANCH', defaultValue: 'main', description: '项目A拉取分支')
    string(name: 'REPO_B_URL', defaultValue: 'git@你的Git地址/项目B.git', description: '项目B Git仓库地址')
    string(name: 'REPO_B_BRANCH', defaultValue: 'main', description: '项目B拉取分支')
    string(name: 'RUN_SIMULATION', defaultValue: '*', description: '指定要执行的测试类,填*则执行所有仓库的全部用例')
  }
  stages {
    stage('拉取Gatling执行入口代码') {
      steps {
        // 替换为你自己的入口项目Git地址
        git url: 'git@你的Git地址/gatling-runner.git', branch: 'main'
      }
    }
    stage('拉取多仓库测试用例') {
      steps {
        // 拉取项目A测试代码合并到入口源码目录
        dir('temp-a') {
          git url: params.REPO_A_URL, branch: params.REPO_A_BRANCH
        }
        sh 'cp -rf temp-a/src/test/scala/* src/test/scala/'
        // 拉取项目B测试代码合并到入口源码目录
        dir('temp-b') {
          git url: params.REPO_B_URL, branch: params.REPO_B_BRANCH
        }
        sh 'cp -rf temp-b/src/test/scala/* src/test/scala/'
      }
    }
    stage('运行Gatling测试') {
      steps {
        // 以下是sbt执行命令,用maven/gradle的话替换为对应执行命令即可
        sh "sbt gatling:testOnly ${params.RUN_SIMULATION}"
      }
    }
    stage('归档测试报告') {
      steps {
        // 需提前安装Jenkins的HTML Publisher插件
        publishHTML(target: [
          allowMissing: false,
          alwaysLinkToLastBuild: true,
          keepAll: true,
          reportDir: 'target/gatling',
          reportFiles: 'index.html',
          reportName: 'Gatling性能测试报告'
        ])
      }
    }
  }
}

3. 扩展说明

如果后续要接入更多仓库的测试用例,只需要在Pipeline参数里新增对应仓库的地址、分支配置,再加一步拉取合并代码的逻辑即可,不需要修改入口项目的内容。

常见问题排查

  • 如果出现类找不到的报错,先检查测试用例所在仓库的Gatling版本是否和入口项目一致
  • 如果只执行了单个仓库的用例,检查cp命令的路径是否正确,有没有覆盖合并的问题
  • 报告显示异常的话,检查Jenkins的HTML渲染策略是否允许运行JS,可执行System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 23:06:05