JenKins+ANT+JMeter+SVN接口自动化环境部署

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
image.png

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.png

[图片上传失败...(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
image.png

四、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="{jmeter.result.jtl.dir}/{test}.jtl" />
<property name="jmeter.result.htmlName" value="{jmeter.result.html.dir}/{test}.html" />
<path id="xslt.classpath">
<fileset dir="{jmeter.home}/lib" includes="xalan*.jar"/> <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.home}" resultlog="{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.jtlName}" out="{jmeter.result.htmlName}"
style="{jmeter.home}/extras/jmeter.results.shanhe.me.xsl"> <param name="dateReport" expression="{report.datestamp}"/>
</xslt>
<copy todir="{jmeter.result.html.dir}"> <fileset dir="{jmeter.home}/extras">
<include name="collapse.png" />
<include name="expand.png" />
</fileset>
</copy>
</target>

</project>

切记:如果用Jenkins工具通过svn下载的jmx脚本文件位置不一致,这里需要修改

<jmeter jmeterhome="{jmeter.home}" resultlog="{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(检查构建是否成功)

image.png
  • 4、生成的html报告
image.png

五、Jenkins配置

1、配置环境变量

Jenkins中-系统配置-全局工具配置

配置jdk

image.png
查看linux系统java路径
Echo $java_home
或者which java

[root@192 bin]# which java
/usr/bin/java

在后续跑Jenkins脚本中 发现多了一个bin跟java,把环境变量中的bin/java给删除了(我linux系统 默认安装了java)

2、配置 ant

image.png

/usr/local/apache-ant-1.9.14 目录为大家linux服务中 ant路径位置

3,添加2个插件 系统配置-插件中(完成后重启Jenkins工具)

image.png

4、Jenkins中添加一个自由风项目

image.png

5、丢弃旧的构建

image.png

6、源码管理

image.png

代码下载路径为 /var/lib/jenkins/workspace/jmeter_ant_jenkins/checkout_svn_data

7、构建触发器

image.png

10 15 * * * 每天下午15点 10分运行一次

8、构建 ant

image.png

9、构建HTML报告

image.png

10、构建jtl报告

image.png

11、看构建成功的结果

image.png

六、如果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 比较混乱,不是很直观,于是思考修改一下

4249725225-5c98d88b22aef_articlex.png

试验了一下发现如果多次构建后生成在同一个jtl文件里,解析出的Performance Trend是正确的,但是我原本的设置中,jtl文件名是精确到分钟的,需要修改成精确到天的,这样正好一天的结果能看的很直观。
修改不是很难,总共修改3个地方即可
1.build.xml文件中的时间戳精度
原来是这样的,,jtl和html用的是同一个时间变量,咱们需要把这两个分开来

image.png

修改后如下,也就是多建立一个精确到天的时间变量

image.png

1、插件安装

系统管理---->插件管理----->可选插件----->搜索Zentimestamp

安装即可

2、插件使用

系统管理---->系统设置---->全局属性

image.png

时间格式根据自已的需要设定。

3、Job特例时间戳的设置

打开对应的job 我们可以发现多了一个选项:

image.png

当我们不勾选此选项时将采用系统设置里设置的格式。如果勾选此选项将会优先采用Job中的时间戳格式。

注意:

1.如果时间戳的格式填写不正确,将会导致Job的构建失败。

2.变量名不是BUILD_ID 而是BUILD_TIMESTAMP 在我们想使用的地方直接$BUILD_TIMESTAMP 即可

4、修改任务中performance插件的jtl路径,使用新的时间变量

image.png

5、设置好了,运行看一下

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容