DevOps之在jenkins中使用Pipeline集成jmeter进行测试

没有测试的集成不是完整的集成,这周和测试那边沟通了一下,把jmeter对模块的检测集成进去,看了一下大概的思路是:

  1. 把本地的jmeter挂载到jenkins-slave里
  2. 在执行jmeter的命令去执行检测,
  3. 然后将报告存储到本地,利用nginx服务器进行一个展示,(这边一直对报告的输出一直纠结,最后决定存到本地然后用nginx挂出去)

一条各个系统结合命名的规则:首先以girlab的项目名为主名,测试问建的命名为gitlab的项目并+后缀jmx(gitlab项目名字母开头单词可,长名使用中中划线- 不能使用下划线等其他字符)

 stage('jmeter test'){
          sh "cd eureka "
          sh "ls -alt /usr/local/jmeter51/report"
          checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'fb1ea0bb-ff11-449d-bf11-32f687453930', url: 'http://192.168.11.114/root/jmeter-jmx.git']]])
          sh "mkdir -p /usr/local/jmeter51/report/${env.JOB_NAME}/${env.BUILD_NUMBER}"
          sh "${jmeter} -n -t ${env.JOB_NAME}.jmx -l /usr/local/jmeter51/report/${env.JOB_NAME}/${env.BUILD_NUMBER}/test.jtl -e -o /usr/local/jmeter51/report/${env.JOB_NAME}/${env.BUILD_NUMBER}/test"
      }     

增加一个对所有模块使用 jenkins 自动测试的pipeline 可直接使用

podTemplate(label: 'jnlp-slave', cloud: 'kubernetes', containers: [
    containerTemplate(
        name: 'jnlp', 
        image: '192.168.111.118:82/library/jenkins-slave:latest', 
        alwaysPullImage: true 
    ),
  ],
  volumes: [
    hostPathVolume(mountPath: '/usr/local/jdk', hostPath: '/usr/local/jdk'),
    nfsVolume(mountPath: '/usr/local/jmeter51', readOnly: false, serverAddress: '192.168.111.118', serverPath: '/usr/local/jmeter51'),
  ],
  imagePullSecrets: ['registry-key'],
) 
{
 node("jnlp-slave"){
      def bearychat_url = "https://hook.bearychat.com/=bwGGG/jenkins/4f85769324a1b6ec7a32266819cf2e64"
      def mvn_com = "/usr/local/maven/bin/mvn"
      def jmeter = "/usr/local/jmeter51/bin/jmeter"
      def jmeter_re = "/usr/local/jmeter51/report/"
     stage('Git Checkout'){
         checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'fb1ea0bb-ff11-449d-bf11-32f687453930', url: 'http://192.168.11.114/root/jmeter-jmx.git']]])
       }

      stage('jmeter test'){
              
                 out = sh(script: "ls *.jmx ", returnStdout: true).toString().trim()
                 size = out.size()
                 println "${out}"
                 str5 = out.split()
                 for (int i = 0;i < str5.size();++i){
                       sh  "mkdir -p ${jmeter_re}all-${env.BUILD_NUMBER}/${str5[i]}/"
                       sh "${jmeter} -n -t ${str5[i]} -l ${jmeter_re}all-${env.BUILD_NUMBER}/${str5[i]}.jtl  -e -o ${jmeter_re}all-${env.BUILD_NUMBER}/${str5[i]}/test " 
                    }
                 
          
      }     
   }
}

转载于:https://www.jianshu.com/p/381b6393f017

猜你喜欢

转载自blog.csdn.net/weixin_34061555/article/details/91212933
今日推荐