JENKINS持续集成性能测试环境搭建及使用

JENKINS持续集成性能测试环境搭建及使用

JENKINS持续集成性能测试环境搭建及使用

1. CENTOS7配置JDK 8环境

修改/etc/profile文件,添加java环境变量。

#java
export JAVA_HOME=/opt/java/jdk1.8.0_181
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin

source /etc/profile 使新增的环境变量生效。

[root@pjenkins ~]# source /etc/profile 
[root@pjenkins ~]# java -version
java version "1.8.0_221"
Java(TM) SE Runtime Environment (build 1.8.0_221-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)

2. 配置JENKINS持续集成服务

A. Linux系统配置jenkins服务

i. 配置tomcat 8

采用tomcat 8,无需安装,配置JAVA_HOME及JRE_HOME环境变量即可。将tomcat 8.tar.gz安装包上传到/app目录下,解压后,更改名称为apache-tomcat-jenkins-8080-perf,启动tomcat服务:sh /app/apache-tomcat-jenkins-8080-perf/bin/startup.sh,访问http://$IP:8080,出现tomcat默认页面即为启动成功。

ii. 配置Jenkins服务

将jenkins.war包上传到/app/apache-tomcat-jenkins-8080-perf/webapps/,将原来的ROOT修改为ROOT-tomcat.bak。将jenkins.war修改为ROOT.war。重启tomcat服务,访问http://$IP:8080,出现jenkins安装页面,按照步骤安装。

iii. 安装Jenkins插件

常用的插件:Git plugin 、Gradle plugin、HTML Publisher plugin、Maven Integration plugin、Performance Plugin、Publish Over SSH…自行安装。
如果网络受限制,无法通过jenkins插件管理安装,可以使用离线包安装,也可以使用我安装的插件包,网盘下载链接https://pan.baidu.com/s/10xiEjvwZHDXaqf5fIbFEvg 密码:yvhq。
将plugins.tar.gz解压到你的安装目录下(一般安装在 ~/.jenkins),替换掉原来的plugins。重启jenkins服务,即可使用这些插件。

3. 配置性能测试环境

A. 配置Jmeter环境

Jmeter不需要安装,需要JDK环境,配置环境变量即可使用。
修改/etc/profile文件,添加jmeter环境变量。

#jmeter environment
export JMETER_HOME=/opt/jmeter/apache-jmeter-4.0
export CLASSPATH=.:${JMETER_HOME}/lib/ext/ApacheJMeter_core.jar:${JMETER_HOME}/lib/jorphan.jar
export PATH=$PATH:${JMETER_HOME}/bin

source /etc/profile 使新增的环境变量生效。jmeter -v验证。

B. Jenkins性能测试项目

i. Jmeter开发性能测试脚本

Gitlub上创建一个项目performance-test.git,用来存放性能测试脚本
git clone http://gitlab.weikeu.com/TestDevelopment/performance-test.git
使用jmeter进行脚本开发,完成后,push到gitlub上。
git status
git add .
git commit -m “放款优化前置贷款申请接口调试”
git push
以一个简单的性能测试项目为例:标准化时为了适配以前的接口加入了过滤器,为了测试请求有无影响,需进行压测,统计请求响应时间有无影响。
改造后请求url:http://$IP:8080/EsQuery/esquery/zj/qTdUsedPrdDetail
改造前请求url:http://$IP:8081/EsQuery/esquery/zj/qTdUsedPrdDetail
post请求报文:{"productNo":"202030345"}

在应用服务器8C8G的测试环境下,改造前后,以不同并发数(100、500、1000)压测同一接口,本次测试无需对$参数化。
测试计划中 设置 独立运行每个线程组,使一个线程组运行结束后启动下一个,保存jmeter测试脚本到performanc-test/jmeter-perf/riskdatafront/目录下,并git push到gitlub上。
image.png

ii. Jenkins配置性能测试项目

构建一个自由风格的软件项目,工程名为risk_data_front_FGGZYQ167_FGGZYQ169(应用名称+jira号)。配置项目如下:
image.png

image.png
执行shell说明:
1、删除上一次构建产生的html报告;
2、删除上一次构建产生的压测jtl文件;
3、cd到jmeter启动文件所在的目录;
4、执行jmeter测试脚本,并生成html测试报告。

html报告需要在jenkins脚本命令行里执行以下语句 ,才可以正常显示html报告。System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", ""),每次重启服务器,都需要执行这条语句,否则html报告不显示测试结果。

Html 报告设置,除第一项html报告存放的路径要填写正确外,其他可以自由输入。Keep past HTML reports保留之前的html测试报告。
image.png
Performance 测试结果报告,按下图填写即可。
image.png

image.png

iii. 构建性能测试工程

点击【立即构建】,查看控制台输出。特别注意文件路径,否则会报无权限的错误。
image.png

查看html报告(部分截图)。
image.png
查看performance测试结果报告(部分截图)。
image.png
以上jenkins持续集成性能测试平台部署成功。