Jenkins 集成 JMeter 实现持续性能测试

标签: CI/CD Jenkins 持续测试 性能测试 JMeter | 发表时间:2022-01-30 00:00 | 作者:
出处:https://devopstools.cn/

JMeter 是最受欢迎的开源性能测试工具之一,最近在跟多个用户的聊天中都谈到了JMeter与CI/CD工具集成,我们这个话题来聊一下,如何使用Jenkins和Performance plugin实现持续性能测试。

前提条件

我们在使用Jenkins集成JMeter之前,需要现有一个正常运行状态的Jenkins实例。如果还没有Jenkins实例,您可以使用Jenkins的Docker镜像快速安装一个。安装命令如下:

1     
docker run -d -p 80:8080 -p 50000:50000 -v /root/jenkins_home:/var/jenkins_home -v /etc/localtime:/etc/localtime --name jenkins     

Jenkins 登录

下载JMeter 到Jenkins的宿主机

到Apache官网下载JMeter,下载地址如下:

1     
https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.4.3.tgz     

由于我们要部署在Linux平台,因此选择下载.tgz后缀的压缩包
JMeter下载
JMeter压缩包下载到宿主机的 `/root/jenkins_home/tools’目录下,并使用 · tar -zxvf ·进行解压

1     
tar -zxvf apache-jmeter-5.4.3.tgz     

解压后,验证JMeter在Jenkins Docker容器中是否可以正常启动.

  1. 查看Jenkins Docker容器名称或ID
    1       
    2
    [root@jenkins-master tools]# docker ps |grep jenkins       
    de0d56bd751e jenkins/jenkins:lts "/sbin/tini -- /usr/…" 3 months ago Up 2 hours 0.0.0.0:50000->50000/tcp, :::50000->50000/tcp, 0.0.0.0:8085->8080/tcp, :::8085->8080/tcp
  2. 以Root用户方式进入Jenkins容器
    1       
    2
    3
    [root@jenkins-master tools]# docker exec -it -u root jenkins bash       
    root@de0d56bd751e:/#

  3. 切换到jenkins的tools目录下
    1       
    2
    3
    4
    5
    6
    7
    8
    9
    10
    root@de0d56bd751e:/var/jenkins_home/tools/apache-jmeter-5.4.3/bin# cd /var/jenkins_home/tools/apache-jmeter-5.4.3/bin       
    root@de0d56bd751e:/var/jenkins_home/tools/apache-jmeter-5.4.3/bin# ls
    ApacheJMeter.jar examples jmeter-n.cmd jmeter.sh report-template system.properties
    BeanShellAssertion.bshrc hc.parameters jmeter-server jmeterw.cmd reportgenerator.properties templates
    BeanShellFunction.bshrc heapdump.cmd jmeter-server.bat krb5.conf saveservice.properties threaddump.cmd
    BeanShellListeners.bshrc heapdump.sh jmeter-t.cmd log4j2.xml shutdown.cmd threaddump.sh
    BeanShellSampler.bshrc jaas.conf jmeter.bat mirror-server shutdown.sh upgrade.properties
    create-rmi-keystore.bat jmeter jmeter.log mirror-server.cmd stoptest.cmd user.properties
    create-rmi-keystore.sh jmeter-n-r.cmd jmeter.properties mirror-server.sh stoptest.sh utility.groovy

  4. 检查JMeter在Jenkins容器中是否可以正常运行
    1       
    2
    3
    4
    5
    6
    7
    8
    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.3

    Copyright (c) 1999-2021 The Apache Software Foundation
    显示了JMeter的Logo和版本说明JMeter可以正常运行了。

    Jenkins安装Performance plugin

    进入Jenkins以后通过【Manage Jenkins】-[Mangage Plugins]
    在 Available 标签中查找Performance Plugin,并选择该插件进行安装,安装后重启Jenkins
    Performance Plugin

    编写一个JMeter性能测试场景

    我们通过一个录制的方法编写一个性能测试场景。以GUI模式运行JMeter,创建一个测试计划 DevOpsToolsTestPlan,测试计划中添加一个线程组( Thread Group)和2 个HTTP Request

HTTPS 请求访问 https://devopstools.cn
HTTPS 请求访问 https://devopstools.cn/2021/11/08/bdd/cucumber-java-ct/
HTTP Request
GUI中点击运行【Run】按钮,测试脚本是否正常。
Run Test Plan
最后把性能测试脚本上传到Git仓库,Jenkins中访问Git仓库实现加载测试计划并运行测试计划。
Git仓库中性能测试仓库地址为:

1     
https://gitee.com/devopstools/jenkins-jmeter-demo.git     

Jenkins中创建流水线

Jenkins中创建流水线工程名称为Jenkins-JMeter-Demo。

1     
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
pipeline {     
agent any

tools{
git 'Default'
}

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上查看性能指标
性能指标

相关 [jenkins jmeter 性能] 推荐:

Jenkins 集成 JMeter 实现持续性能测试

- - DevOps工具技术
JMeter 是最受欢迎的开源性能测试工具之一,最近在跟多个用户的聊天中都谈到了JMeter与CI/CD工具集成,我们这个话题来聊一下,如何使用Jenkins和Performance plugin实现持续性能测试. 我们在使用Jenkins集成JMeter之前,需要现有一个正常运行状态的Jenkins实例.

使用Jmeter进行分布式性能测试

- - 开源软件 - ITeye博客
使用Jmeter进行分布式测试的主要步骤是:. 在所有做为Agent的机器上安装相同版本的Jmeter,然后运行jmeter-server文件. 在Cotroller机器上%Jmeter_Home%/bin下,找到Jmeter.properties,把Agent的ip添加到remote_hosts=192.168.0.1:1099,192.168.0.2:1099行.

使用JMeter的Java请求功能测试Hetty性能

- - BlogJava-qileilove
  JMeter是Apache组织的开放源代码项目,它是功能和. 性能测试的工具,100%的用. JMeter可以用于测试静态或者动态资源的性能(文件、Servlets、Perl脚本、java对象、. 数据库和查询、ftp服务器或者其他的资源). JMeter用于模拟在服务器、网络或者其他对象上附加高负载以测试他们提供服务的受压能力,或者分析他们提供的服务在不同负载条件下的总性能情况.

Jmeter性能测试脚本录制和监控

- - 互联网 - ITeye博客
针对接口的压测,借用SoapUI测试工具录制脚本:. 1、被测接口remindFacade下的getRemindById接口. 步骤:打开jmeter----测试计划下建线程组----线程组下加HTTP请求(下面加断言)----线程组下面加监听器(聚合及查看结果树),基本架子已经ok. 2、ip你需要访问的服务器地址,http协议和post的请求方法,路径是被测接口的路径.

使用JMeter对Tomcat进行压力测试与Tomcat性能调优

- - ITeye博客
      1、安装JDK1.6或1.6版本以后的,并配置环境变量. 这个exception的原因是 apache-jmeter-2.12_src.zip中的bin目录中,缺少了ApacheJemeter.jar.所以要下载binary版本的.      3、在Apache的官网上下载Tomcat,本文中以Tomcat7.0.42为例.

JMETER 参数化

- - 开源软件 - ITeye博客
用Jmeter中的函数获取参数值,__Random,__threadNum,__CSVRead,__StringFromFile. 2.用户定义的变量 “配置元件”->“用户定义的变量”. 从csv文件中读取“配置元件”->“CSV Data Set Config”. 调用方法${id_g1} ${id_g2} ${id_g3}.

Jenkins的plugin开发

- - CSDN博客研发管理推荐文章
       Jenkins强大的功能主要靠其丰富的plugin体现,之前的一篇博客《 Jenkins安装plugin》中介绍了如何找到并安装需要的plugin. 虽然目前已经有大量非常优秀的plugin可供使用,但是有时候仍需要自己开发一些满足项目特殊要求的plugin. 下面通过一个简单实例,介绍Jenkins的plugin的整个开发过程.

JMeter使用技巧

- - 博客园_首页
在这此对新版本jmeter的学习+温习的过程,发现了一些以前不知道的功能,所以,整理出来与大分享. 如何使用英文界面的jmeter. 如何使用英文界面的JMeter.   Jmeter启动时会自动判断操作系统的locale 并选择合适的语言启动,所以,我们启动jmeter后,其会出现一个倍感亲切的中文界面.

SonarQube和Jenkins的集成

- - 研发管理 - ITeye博客
在Java软件开发过程中,开发团队往往要花费大量的时间和精力发现并修改代码缺陷. Java 静态代码分析(static code analysis)工具能够在代码构建过程中帮助开发人员快速、有效的定位代码缺陷并及时纠正这些问题,从而极大地提高软件可靠性并节省软件开发和测试成 本. 目前市场上的 Java 静态代码分析工具种类繁多且各有千秋,因此本文将分别介绍现有 4 种主流 Java 静态代码分析工具 (Checkstyle,FindBugs,PMD,Jtest),并从功能、特性等方面对它们进行分析和比较,希望能够帮助 Java 软件开发人员了解静态代码分析工具,并选择合适的工具应用到软件开发中.

Deploy the spring cloud project using jenkins

- - Telami
先简单记录下Jenkins部署maven聚合工程要点. Root pom配置成项目根目录的pom.xml. maven命令单独install 欲构建的项目. 选项后可跟随{groupId}:{artifactId}或者所选模块的相对路径(多个模块以逗号分隔). 表示同时处理选定模块所依赖的模块. 表示同时处理依赖选定模块的模块.