Jenkins+ant+jmeter+svn环境部署
一、Jenkins安装
具体安装过程见—Linux下安装JenKins环境部署.md文件
二、ant 安装
1、下载 ant安装包
从http://ant.apache.org 上下载tar.gz版ant
wget http://mirrors.cnnic.cn/apache//ant/binaries/apache-ant-1.9.14-bin.tar.gz
2、解压
tar -vxzf apache-ant-1.9.14-bin.tar.gz -C /usr/local 解压
3、修改环境变量
vi /etc/profile
#ant env
export ANT_HOME=/usr/local/apache-ant-1.9.14
export PATH=$PATH:$ANT_HOME/bin
4、使配置生效
source /etc/profile source命令 是配置的 环境变量生效
5、检查是否配置成功
ant -version
三、jmeter的安装
首先要保证Linux中安装了jdk
1、下载Jmeter
下载地址:http://jmeter.apache.org/download_jmeter.cgi
wget https://mirrors.tuna.tsinghua.edu.cn/apache//jmeter/binaries/apache-jmeter-5.1.1.zip
[图片上传失败...(image-4b3b0c-1576120045849)]
2、传输到linux系统中,目录自己可以指定,
我放在 /usr/local 目录下
cp apache-jmeter-5.1.1.zip /usr/local/
3、解压
unzip apache-jmeter-5.1.1.zip
4、配置环境变量
vi /etc/profile
后面追加进行
#jmeter env
JMETER_HOME=/usr/local/apache-jmeter-5.1.1
PATH=$PATH:$JMETER_HOME/bin
CLASSPATH=.:$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$CLASSPATH
export JMETER_HOME PATH CLASSPATH
5、source生效
source /etc/profile
6、检查是否配置成功
jmeter -v
四、ant与jmeter关联
1、建立了2个目录为了保存后续的html报告跟jtl报告的内容
mkdir -p /usr/local/apache-jmeter-5.1.1/smoke_report/html
mkdir -p /usr/local/apache-jmeter-5.1.1/smoke_report/jtl
Chmod 777 -R /usr/local/apache-jmeter-5.1.1/smoke_report
给这个目录添加权限(后续我在Jenkins运行过程中出现过,因为权限问题,无法生存测试报告)
Chmod 777 -R /usr/local/apache-jmeter-5.1.1/lib
添加了目录权限,后续中出现过文件,log日志没有权限,导致Jenkins运行不成功
2、将jmeter目录下的extras目录下的ant-jmeter-1.1.1.jar文件复制到ant目录下的lib文件夹中
cp /usr/local/apache-jmeter-5.1.1/extras/ant-jmeter-1.1.1.jar /usr/local/apache-ant-1.9.14/lib/
3、下载测试报告模板
1、下载style文件:jmeter.results.shanhe.me.xsl
将jmeter-results-shanhe-me.xsl上传至jmeter安装目录的extras文件夹下
cp /home/zgp/jmeter.results.shanhe.me.xsl /usr/local/apache-jmeter-5.1.1/extras/
4、配置ant编译文件build.xml
将build.xml放至jmeter目录下
cp /usr/local/apache-jmeter-5.1.1/extras/build.xml /usr/local/apache-jmeter-5.1.1
修改build.xml文件
vi build.xml
<?xml version="1.0" encoding="UTF-8"?>
<project name="ant-jmeter-test" default="run" basedir=".">
<tstamp>
<format property="time" pattern="yyyyMMddhhmm" />
</tstamp>
<property name="basedirectory" value="/usr/local/apache-jmeter-5.1.1/extras" />
<property name="jmeter.home" value="/usr/local/apache-jmeter-5.1.1" />
<property name="jmeter.result.jtl.dir" value="/usr/local/apache-jmeter-5.1.1/smoke_report/jtl" />
<property name="jmeter.result.html.dir" value="/usr/local/apache-jmeter-5.1.1/smoke_report/html" />
<property name="ReportName" value="TestReport" />
<property name="jmeter.result.jtlName" value="{test}.jtl" />
<property name="jmeter.result.htmlName" value="{test}.html" />
<path id="xslt.classpath">
<fileset dir="{jmeter.home}/lib" includes="serializer.jar"/>
</path>
<target name="run">
<antcall target="test" />
<antcall target="report" />
</target>
<target name="test">
<taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
<jmeter jmeterhome="{jmeter.result.jtlName}">
<testplans dir="/var/lib/jenkins/workspace/checkout_svn_data/request_auto" includes=".jmx" />
</jmeter>
</target>
<target name="report">
<tstamp> <format property="report.datestamp" pattern="yyyy/MM/dd HH:mm" /></tstamp>
<xslt classpathref="xslt.classpath"
force="true"
in="{jmeter.result.htmlName}"
style="{report.datestamp}"/>
</xslt>
<copy todir="{jmeter.home}/extras">
<include name="collapse.png" />
<include name="expand.png" />
</fileset>
</copy>
</target></project>
切记:如果用Jenkins工具通过svn下载的jmx脚本文件位置不一致,这里需要修改
<jmeter jmeterhome="{jmeter.result.jtlName}">
<testplans dir="/var/lib/jenkins/workspace/checkout_svn_data/request_auto" includes=".jmx" />*
</jmeter>
</target>
5、jmeter/bin/properities文件
修改jmeter安装目录下的jmeter/bin/properities文件,修改jmeter.save.saveservice.output_format=xml
vi /usr/local/apache-jmeter-5.1.1/bin/jmeter.properties
6、调试ant配置jmeter是否成功
1,脚本已经编写好,并且运行没有错误
-
2,脚本已经发到到指定的目录里面
cp login.jmx /var/lib/jenkins/workspace/checkout_svn_data/request_auto/
3,ant run(检查构建是否成功)
- 4、生成的html报告
五、Jenkins配置
1、配置环境变量
Jenkins中-系统配置-全局工具配置
配置jdk
查看linux系统java路径
Echo $java_home
或者which java
[root@192 bin]# which java
/usr/bin/java
在后续跑Jenkins脚本中 发现多了一个bin跟java,把环境变量中的bin/java给删除了(我linux系统 默认安装了java)
2、配置 ant
/usr/local/apache-ant-1.9.14 目录为大家linux服务中 ant路径位置
3,添加2个插件 系统配置-插件中(完成后重启Jenkins工具)
4、Jenkins中添加一个自由风项目
5、丢弃旧的构建
6、源码管理
代码下载路径为 /var/lib/jenkins/workspace/jmeter_ant_jenkins/checkout_svn_data
7、构建触发器
10 15 * * * 每天下午15点 10分运行一次
8、构建 ant
9、构建HTML报告
10、构建jtl报告
11、看构建成功的结果
六、如果Jenkins需要root执行权限
1、修改Jenkins配置文件
# 打开配置文件
vim /etc/sysconfig/jenkins
# 修改$JENKINS_USER,并去掉当前行注释
$JENKINS_USER="root"
2、修改Jenkins相关文件夹用户权限
chown -R root:root /var/lib/jenkins
chown -R root:root /var/cache/jenkins
chown -R root:root /var/log/jenkins
3、重启Jenkins服务并检查运行Jenkins的用户是否已经切换为root
# 重启Jenkins(若是其他方式安装的jenkins则重启方式略不同)
service jenkins restart
# 查看Jenkins进程所属用户
ps -ef | grep jenkins
# 若显示为root用户,则表示修改完成
七、Jenkins performance插件生成性能测试报告
把Jenkins部署好了,但是用了之后发现performance插件有问题,如果按下面这样设置统计所有的jtl文件,会导致文件夹过于臃肿,于是,而且生成的Performance Trend 比较混乱,不是很直观,于是思考修改一下
试验了一下发现如果多次构建后生成在同一个jtl文件里,解析出的Performance Trend是正确的,但是我原本的设置中,jtl文件名是精确到分钟的,需要修改成精确到天的,这样正好一天的结果能看的很直观。
修改不是很难,总共修改3个地方即可
1.build.xml文件中的时间戳精度
原来是这样的,,jtl和html用的是同一个时间变量,咱们需要把这两个分开来
修改后如下,也就是多建立一个精确到天的时间变量
1、插件安装
系统管理---->插件管理----->可选插件----->搜索Zentimestamp
安装即可
2、插件使用
系统管理---->系统设置---->全局属性
时间格式根据自已的需要设定。
3、Job特例时间戳的设置
打开对应的job 我们可以发现多了一个选项:
当我们不勾选此选项时将采用系统设置里设置的格式。如果勾选此选项将会优先采用Job中的时间戳格式。
注意:
1.如果时间戳的格式填写不正确,将会导致Job的构建失败。
2.变量名不是BUILD_ID 而是BUILD_TIMESTAMP 在我们想使用的地方直接$BUILD_TIMESTAMP 即可