JENKINS持续集成性能测试环境搭建及使用
1. CENTOS7配置JDK 8环境
官网下载JDK,修改/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 “this is xxxxxxxxx” 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)压测同一接口,本次测试无需对${productNo }参数化。
测试计划中 设置 独立运行每个线程组,使一个线程组运行结束后启动下一个,保存jmeter测试脚本到performanc-test/jmeter-perf/riskdatafront/目录下,并git push到gitlub上。
ii. Jenkins配置性能测试项目
构建一个自由风格的软件项目,工程名为risk_data_front_FGGZYQ167_FGGZYQ169(应用名称+jira号)。配置项目如下:
执行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测试报告。
Performance 测试结果报告,按下图填写即可。
iii. 构建性能测试工程
点击【立即构建】,查看控制台输出。特别注意文件路径,否则会报无权限的错误。
查看html报告(部分截图)。
查看performance测试结果报告(部分截图)。
以上jenkins持续集成性能测试平台部署成功。