没有测试的集成不是完整的集成,这周和测试那边沟通了一下,把jmeter对模块的检测集成进去,看了一下大概的思路是:
- 把本地的jmeter挂载到jenkins-slave里
- 在执行jmeter的命令去执行检测,
- 然后将报告存储到本地,利用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 "
}
}
}
}
网友评论