Jenkins集成JMeter实现持续性能测试
JMeter 是最受欢迎的开源性能测试工具之一,最近在跟多个用户的聊天中都谈到了JMeter与CI/CD工具集成,我们这个话题来聊一下,如何使用Jenkins和Performance plugin实现持续性能测试。
前提条件
我们在使用Jenkins集成JMeter之前,需要现有一个正常运行状态的Jenkins实例。如果还没有Jenkins实例,您可以使用Jenkins的Docker镜像快速安装一个。安装命令如下:
|
|
下载JMeter 到Jenkins的宿主机
到Apache官网下载JMeter,下载地址如下:
|
|
由于我们要部署在Linux平台,因此选择下载.tgz后缀的压缩包
JMeter压缩包下载到宿主机的 `/root/jenkins_home/tools’目录下,并使用 · tar -zxvf ·进行解压
|
|
解压后,验证JMeter在Jenkins Docker容器中是否可以正常启动.
1.查看Jenkins Docker容器名称或ID
[root@jenkins-mastertools]dockerps|grepjenkinsde0d56bd751ejenkins/jenkins:lts"/sbin/tini -- /usr/…"3monthsagoUp2hours0.0.0.0:50000->50000/tcp,:::50000->50000/tcp,0.0.0.0:8085->8080/tcp,:::8085->8080/tcp
2.以Root用户方式进入Jenkins容器
[root@jenkins-master tools]docker exec -it -u root jenkins bashroot@de0d56bd751e:/
3.切换到jenkins的tools目录下
root@de0d56bd751e:/var/jenkins_home/tools/apache-jmeter-5.4.3/bincd /var/jenkins_home/tools/apache-jmeter-5.4.3/bin
3.检查JMeter在Jenkins容器中是否可以正常运行
root@de0d56bd751e:/var/jenkins_home/tools/apache-jmeter-5.4.3/bin/var/jenkins_home/tools/apache-jmeter-5.4.3/bin/jmeter --version_________________________________________/ \| _ \ / \ / ___|| || ____|| |\/| ____|__| ____|_\
/_\| |_) /_\| || |_| |_| _ || |\/| |_| || |_| ||_) |/ ___\| __/ ___ \ |___| _ ||___ ||_|| || ||___ || ||___|_</_/\_\_| /_/ \_\____|_| |_|_____|\___/|_||_|_____| |_| |_____|_|\_\5.4.3Copyright (c)1999-2021The Apache Software Foundation
显示了JMeter的Logo和版本说明JMeter可以正常运行了。
Jenkins安装Performance plugin
进入Jenkins以后通过【Manage Jenkins】-[Mangage Plugins]在 Available 标签中查找Performance Plugin,并选择该插件进行安装,安装后重启Jenkins。
编写一个JMeter性能测试场景
我们通过一个录制的方法编写一个性能测试场景。以GUI模式运行JMeter,创建一个测试计划DevOpsToolsTestPlan,测试计划中添加一个线程组(Thread Group)和2 个HTTP Request
HTTPS 请求访问https://devopstools.cnHTTPS 请求访问https://devopstools.cn/2021/11/08/bdd/cucumber-java-ct/
GUI中点击运行【Run】按钮,测试脚本是否正常。
最后把性能测试脚本上传到Git仓库,Jenkins中访问Git仓库实现加载测试计划并运行测试计划。Git仓库中性能测试仓库地址为:
|
|
Jenkins中创建流水线
Jenkins中创建流水线工程名称为Jenkins-JMeter-Demo。
pipeline {
agent any
tools{
gitDefault}
options { timeout(time: 2, unit:HOURS) }
stages {
stage(获取代码){
steps{echo---SCM---git credentialsId:devopstools, url:https://gitee.com/devopstools/jenkins-jmeter-demo.git}
}
stage("性能测试") {
steps {echo---PerformanceTest---sh"pwd"sh"/var/jenkins_home/tools/apache-jmeter-5.4.3/bin/jmeter -j jmeter.save.saveservice.output_format=xml -n -Jthreadcount=5 -t DevOpsToolsTestPlan.jmx -l reports/DevOpsToolsTestPlan.report.jtl"}
}
stage("性能测试报告") {
steps {echo---Performance Reports---perfReport filterRegex:, showTrendGraphs:true, sourceDataFiles:reports/*.jtl}
}
}
}
运行Jenkins流水线可以查看到性能测试结果Jenkins上查看性能趋势图
Jenkins上查看性能指标
欢迎关注,后续将配解说视频。性能测试源码地址为Gitee仓库,如有需要请发私信。