jmeter、jenkins 实现性能测试自动化

一、安装JDK

1.1 安装目的

jenkins需要运行在jdk上,所以安装jenkins前需要先安装jdk。

1.2 检查环境是否已安装JDK

Shell执行命令java –version 查看是否已安装JDK,如下图所示,当前环境安装的版本为1.8.0_242

jmeter、jenkins 实现性能测试自动化

 

 

 1.3 安装前的清理工作

注意:该步骤不是必须执行的,当JDK版本不适用,需安装新的JDK时才执行

shell执行如下命令:

rpm -qa | grep jdk

rpm -qa | grep gcj

yum -y remove java-xxx-xxx

1.4 安装步骤

1)通过XFTP在/usr/local 目录下新建java文件夹,将安装包上传到服务器的/usr/local/java目录下,并解压即可

2)配置JDK环境变量

vim命令修改etc目录下的环境变量文件:profile,填写如下内容:

JAVA_HOME=/usr/local/java/jdk1.8.0_242

JRE_HOME=/usr/local/java/jdk1.8.0_242/jre

PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib

export JAVA_HOME JRE_HOME PATH CLASSPATH

3)shell执行source /etc/profile 命令,使环境变量生效

4)shell执行命令:java -version查看JDK是否安装成功,结果如下图所示,表示安装成功。

jmeter、jenkins 实现性能测试自动化

 

 

二、部署jmeter

1、 在/opt目录下创建jmeter文件夹

jmeter、jenkins 实现性能测试自动化

 

 2、上传jmeter文件到jmeter文件夹

jmeter、jenkins 实现性能测试自动化

 

 

3、Vim命令修改etc目录下的环境变量文件:profile,添加如下内容:

export JMETER_HOME=/opt/jmeter/apache-jmeter-3.1

export PATH=$JMETER_HOME/bin:$PATH

export CLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$CLASSPATH

1、 Shell执行source /etc/profile 命令,使环境变量生效

2、 输入jmeter -v ,打印出如下结果表示安装成功:

jmeter、jenkins 实现性能测试自动化

 

 三、安装jenkins

(请自行百度,此处不赘述)

四、jmeter压测脚本编写

(请自行百度,此处不赘述)

五、jenkins配置自动化执行jmeter脚本生成测试报告(重点!!!

1)插件下载

必备插件:HTML Publisher、ant 、DingTalk(钉钉)、email(邮箱)、Startup Trigger、Groovy、SSH、performance、Role-based Authorization Strategy。

插件作用说明:

a、 HTML Publisher和performance报告展示

b、 Startup Trigger、Groovy 解决HTML报告内容为空的问题

c、  SSH 连接远程linux服务器,并执行脚本

d、 Role-based Authorization Strategy 用户、角色权限设置

下载插件的地方:【系统管理】-【插件管理】

jmeter、jenkins 实现性能测试自动化

 

 

2)配置jdk路径信息

路径:【系统管理】-【全局工具配置】

jmeter、jenkins 实现性能测试自动化

 

 

3)配置SSH连接jenkins所在linux服务器

路径:【系统管理】-【系统配置】

jmeter、jenkins 实现性能测试自动化

 

 

4) 创建job

路径:【Dashboard】-【新建任务】

输入工程名称,例如:job name,选择“构建一个*风格的软件项目”,点击确定按钮,即新建成功。

jmeter、jenkins 实现性能测试自动化

 

 

 

注意:job的构建步骤里各插件的先后顺序决定了执行顺序,这个很重要!!!

5)设置钉钉通知

系统管理-系统配置页面填写钉钉配置信息,具体如下图所示,其中webhook为从钉钉软件上设置的钉钉机器人的webhook。

 jmeter、jenkins 实现性能测试自动化

 

 

 

 

然后到job页面勾选配置的机器人即可。

jmeter、jenkins 实现性能测试自动化

 

 

 6)SVN管理jmx脚本

首先,添加文本参数,建立变量TestScript来存放jmx脚本名,脚本名不需要带.jmx后缀

jmeter、jenkins 实现性能测试自动化

 

然然后配置连接SVN

jmeter、jenkins 实现性能测试自动化

 

 

 

 

最后写shell命令执行从SVN上取下来的所有jmx脚本

命令如下:

for i in $interface

do

jmeter -n -t $WORKSPACE/$i.jmx -l $filepath/TestReport/$i.jtl

done

jmeter、jenkins 实现性能测试自动化

 

 

 7)邮件通知

先到系统管理-系统配置页面填写管理员邮箱地址信息

jmeter、jenkins 实现性能测试自动化

 

 

 jmeter、jenkins 实现性能测试自动化

 

再填写邮件通知信息

jmeter、jenkins 实现性能测试自动化

 

 

 

 

最后进入job,构建后操作步骤处添加操作步骤Extended Email Publisher

,并进行配置:

jmeter、jenkins 实现性能测试自动化

 

 

 8)构建触发器

进入job,在构建触发器步骤勾选“定时构建”,输入日程表信息,例如输入:H/5 * * * * 表示每五分钟执行一次。

jmeter、jenkins 实现性能测试自动化

 

 

 9)构建job前清理或备份旧报告

进入job,在“构建”处的SSH site选择linux地址,在command处填写删除报告文件的命令,如果不想删除,也可以重命名为其他名,具体看需要写命令,这里是进行删除。

jmeter、jenkins 实现性能测试自动化

 

 

 注意:filepath是参数化的文件路径

jmeter、jenkins 实现性能测试自动化

 

 

 

10)重启ServerAgent

首先在 系统管理-系统配置页面找到Publish over ssh插件,并按下图所示,填写相关信息。

jmeter、jenkins 实现性能测试自动化

 

 

 

注意:密码只能填写一个,如果需要监控多台服务器,继续新增同样的IP地址配置即可,但是用户的密码只能填写一个,所以这些服务器的密码需一致。

然后进入job,构建环境处勾选“Send files or execute commands over SSH before the build starts”,然后在Exec command处填写重启ServerAgent.sh的脚本。

脚本内容:

#!/bin/bash

echo "Stopping ServerAgent.sh"

pid=`ps -ef | grep " startAgent.sh" | grep -v grep | awk '{print $2}'`

if [ -n "$pid" ]

then

echo $pid

kill -9 $pid

fi

echo "starting ServerAgent.sh"

sleep 1

echo "starting ServerAgent.sh"

nohup sh startAgent.sh & > .out

echo "started ServerAgent.sh"

 jmeter、jenkins 实现性能测试自动化

 

 

 11)jenkins所在服务器shell脚本执行

首先,进入job后添加两个文本参数,

通过变量filepath存储jmeter的部署路径

通过变量interface存储报告存储路径,参数值处一行代表一个变量值。

jmeter、jenkins 实现性能测试自动化

 

然后在“构建”处添加构建步骤Execute shell script on remote host using ssh,然后SSH site选择linux服务器连接地址,在Command处填写shell脚本用于解析jmeter的测试报告;其中

#!/bin/bash -ilex

source /etc/profile;

是必填的,用于使linux的环境变量生效。

jmeter、jenkins 实现性能测试自动化

 

 

 

 12)JMX报告解析

#!/bin/bash -ilex

source /etc/profile;

cd $filepath/lib/ext;

for i in $interface

do

jmeter -g $filepath/TestReport/$i/juhe.jtl -o $filepath/TestReport/$i/Aggregate-Report;

java -jar CMDRunner.jar  --tool Reporter --generate-png $filepath/TestReport/$i/CPU.png --input-jtl $filepath/TestReport/$i/CPU.jtl --plugin-type   PerfMon;

java -jar CMDRunner.jar  --tool Reporter --generate-png $filepath/TestReport/$i/TPS.png --input-jtl $filepath/TestReport/$i/TPS.jtl --plugin-type  TransactionsPerSecond;

java -jar CMDRunner.jar  --tool Reporter --generate-png $filepath/TestReport/$i/time.png --input-jtl $filepath/TestReport/$i/time.jtl --plugin-type   ResponseTimesOverTime;

done

Jmx报告解析命令说明:

命令a: jmeter -g $filepath/TestReport/$i/juhe.jtl -o $filepath/TestReport/$i/Aggregate-Report;

用于将jmeter的聚合报告转换为html报告,这里需要提前下载jmeter的报告解析插件jmeter-results-detail-report_30.xsl,并放到jemter的/opt/jmeter/apache-jmeter-3.1/extras目录下。

命令b: java -jar CMDRunner.jar  --tool Reporter --generate-png $filepath/TestReport/$i/CPU.png --input-jtl $filepath/TestReport/$i/CPU.jtl --plugin-type   PerfMon;

用于将jmeter的资源监控报告转换为图片。

执行此命令前需要先通过命令:cd /opt/jmeter/apache-jmeter-3.1/lib/ext; 进入CMDRunner.jar所在目录

命令最后有个命令类型 PerfMon,除了这个还支持如下类型:

 ResponseTimesOverTime、 ResponseTimesPercentiles、 ThroughputVsThreads、 TimesVsThreads、 PageDataExtractorOverTime、TransactionsPerSecond

如上图所示,转换TPS报告文件就用TransactionsPerSecond;转换响应时间报告就用ResponseTimesOverTime。

13)HTML报告展示

进入job后先在“构建触发器”处勾选“Build when job nodes start”

jmeter、jenkins 实现性能测试自动化

 

再增加构建步骤“Execute system Groovy script”

再编辑该构建步骤,编写命令:

System.setProperty("hudson.model.DirectoryBrowserSupport.CSP","")

用步骤用于解决jenkins的HTML Report插件无法正常显示报告数据。

jmeter、jenkins 实现性能测试自动化

 

 

再增加“构建后操作步骤” “Public HTML reports”,并进行配置

jmeter、jenkins 实现性能测试自动化

 

变量Filepath在General处进行配置

jmeter、jenkins 实现性能测试自动化

 

 

都配置好后,构建job,生成的报告可在左侧点击“HTML Report”进行查看

jmeter、jenkins 实现性能测试自动化

 

14)展示与上次构建的比对结果

进入job,在构建后操作步骤处添加步骤Publish Performance test result report,并按下图进行配置,以读取指定目录下的jtl报告,job构建后可点击左侧的Performance Thead查看报告结果

 jmeter、jenkins 实现性能测试自动化

 

上一篇:jenkins基于pipeline实现项目构建


下一篇:CentOS 7安装Jenkins