Jenkins流水线Java性能测试示例代码

示例代码如下:

pipeline {
    agent any
    options {
        timeout(time: 1, unit: 'HOURS')
    }
    parameters {
        string(name: 'GIT_URL', defaultValue: 'https://github.com/ruanjue/wtdbg2.git', description: '--> git url <--')
        string(name: 'GIT_BRANCH', defaultValue: 'v2.5', description: '--> code branch <--')
        string(name: 'GIT_TARGET_DIR_NAME', defaultValue: 'wtdbg2', description: '--> code branch <--')
    }
    stages{
        stage('Git   Code') {
            agent {
                label 'kunpeng_java_builder'
            }
            steps {
                echo '====== 获取源码 ======'
                checkout scmGit(branches: [[name: "${params.GIT_BRANCH}"]],
                                    browser: github("${params.GIT_URL}"),
                                    extensions: [[$class: 'RelativeTargetDirectory',
                                    relativeTargetDir: "${params.GIT_TARGET_DIR_NAME}"],
                                    cleanBeforeCheckout(deleteUntrackedNestedRepositories: true)],
                                    userRemoteConfigs: [[url: "${params.GIT_URL}"]])
            }
        }
        stage('java-performance-analysis') {
            agent {
                label 'kunpeng_java_builder'
            }
            steps {
                echo '====== java-performance-analysis ======'
                sh '''
                   if [ ! -d "./report_dir" ]; then mkdir -p ./report_dir; fi
                   /usr/bin/rm -rf ./report_dir/*.html
                    # 设置当返回不为0时 停止下一步,直接返回
                    set -e
                    CURDIR=$(pwd)
                    # 删除上次jmeter产生的报告 (jmeter 命令-l、-o指定的文件和路径)
                    rm -rf /home/tester/report /home/tester/result.html
                    # 运行java性能采集
                    /root/.local/devkit_tester/bin/entrance -i 160.0.1.2,160.0.1.3 -u root -f /root/.ssh/id_rsa -D 160.0.1.5 -a spring-boot -d 10 -g /root/spring-boot -j "sh /root/apache-jmeter-5.6.3/bin/jmeter.sh -nt /root/Test_request.jmx -l /home/tester/result.html -eo /home/tester/report" -o ./report_dir -m /root/.local/bisheng-jdk-17.0.10
                '''
            }
            post {
                always {
                    publishHTML(target: [allowMissing: false,
                                alwaysLinkToLastBuild: false,
                                keepAll              : true,
                                reportDir            : './report_dir',
                                reportFiles          : 'devkit_performance_report.html',
                                reportName           : 'Java Performance Report']
                                )
                }
            }      
        }
    }
}
  • “/home/tester/report”:Jmeter报告输出路径。
  • “/home/tester/result.html”:Jmeter产生的结果文件。
  • “/root/.local/devkit_tester/bin/entrance”:Java性能测试工具所在路径。
  • “/root/.ssh/id_rsa”:私钥所在路径。
  • spring-boot:需要采集的应用名称。
  • “/root/spring-boot”:工作节点上通过git clone下载的代码路径。
  • “/root/apache-jmeter-5.6.3/bin/jmeter.sh”:Jmeter工具所在路径。
  • “/root/Test_request.jmx”:Jmeter测试文件所在路径。
  • “/root/.local/bisheng-jdk-17.0.10”:BiSheng JDK17所在路径。

以上内容请根据实际情况进行修改。