Jenkins+Jmeter+Ant持续集成
Posted Jason Kwok
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jenkins+Jmeter+Ant持续集成相关的知识,希望对你有一定的参考价值。
Jenkins+Jmeter+Ant持续集成
前期准备:
1、Jdk1.6或以上:http://www.oracle.com/technetwork/java/javase/downloads/index.html
命令行输入:java -version,出现如下提示说明安装成功
2、ANT下载:http://ant.apache.org/bindownload.cgi。配置环境变量
命令行输入:ant -v,出现如下提示说明安装成功
3、Jmeter下载:http://jmeter.apache.org/download_jmeter.cgi
4、将 jmeter的extras目录中ant-jmeter-1.1.1.jar包拷贝至ant安装目录下的lib目录中
5、修改Jmeter的bin目录下jmeter.properties文件的配置:jmeter.save.saveservice.output_format=xml
一、Jenkins下载安装
到官网下载jenkins.war包:http://jenkins-ci.org/。把下载下来的jenkins.war包放到文件夹下,如C:\\jenkins,然后打开命令行窗口并进到该目录下,执行java -jar jenkins.war命令,当提示:“Jenkins is fully up and running”时,表示启动成功,这时在浏览器窗口输入:http://localhost:8080/ 就可到jenkins的首页
二、修改Jenkins的根目录(可改可不改)
默认地在C:\\user\\.jenkins ,可以通过设置环境变量来修改,将JENKINS_HOME设为D:\\jenkins,然后重新启动jenkins
三、安装Jenkins插件
系统管理-->管理插件-->可选插件:html Publisher plugin、Performance plugin
四、配置JOB
1. 在Jenkins首页点击【新建】任务的,选择【构建一个自由风格的软件项目】,输入名字后点击【OK】
2. 增加构建步骤的说明:
① Execute Windows batch commnd:这个就是windows命令行参数(默认当前路径是job的workspace,如果命令很多可以写成批处理文件放在job的工作目录下,在这引用就好)
② Execute shell:运行shell、python,perl,ruby等脚本
③ Invoke Ant:支持Ant构建
3. 增加构建后操作步骤:可以根据自己的需要选择,常用的是发送邮件,也可以安装jenkins的插件,安装插件后这里会有相应的选项
此处有坑:
HTML Publisher Plugin 插件在新的Jenkins版本中会导致打开的网页中无法加载CSS以及无法点击按钮的情况,由于CSP导致,可在Jenkins的系统管理—>脚步命令行中执行:System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "") 以解决此问题。其他由于CSP原因导致的html插件也可用此方法解决
四、保存,构建job
五、build.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2
3 <project name="ant-jmeter-test"
default="run" basedir=".">
4
<tstamp>
5
<format property="time" pattern="yyyyMMddhhmm"
/>
6
</tstamp>
7
8
9
<property environment="env"/>
10 <property
name="ReportName" value="TestReport" />
11
12 <!-- 需要改成自己本地的 Jmeter 目录-->
13 <property
name="jmeter.home" value="D:\\Jmeter-3.0" />
14 <!-- jmeter生成jtl格式的结果报告的路径-->
15 <property
name="jmeter.result.jtl.dir"
value="${env.WORKSPACE}/results/${env.BUILD_ID}" />
16 <!-- jmeter生成html格式的结果报告的路径-->
17 <property
name="jmeter.result.html.dir"
value="D:\\Jmeter-3.0\\demo\\report\\html" />
18 <!-- 生成的报告的前缀-->
19 <property
name="jmeter.result.jtlName"
value="${jmeter.result.dir}/${ReportName}.jtl" />
20 <property
name="jmeter.result.htmlName"
value="${jmeter.result.dir}/${ReportName}.html" />
21
22 <target
name="run">
23 <echo
message="start..."/>
24 <antcall
target="clean" />
25 <antcall
target="test" />
26 <antcall
target="report" />
27 </target>
28
29 <target
name="clean">
30 <mkdir
dir="${env.WORKSPACE}/results/${env.BUILD_ID}" />
31 </target>
32
33
34 <target
name="test">
35 <taskdef
name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"
/>
36 <jmeter
jmeterhome="${jmeter.home}"
resultlog="${jmeter.result.jtlName}">
37 <!-- 声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本-->
38 <testplans
dir="D:\\Jmeter-3.0\\demo" includes="*.jmx" />
39
40 <property
name="jmeter.save.saveservice.output_format"
value="xml"/>
41
42 </jmeter>
43 </target>
44
45
46 <path
id="xslt.classpath">
47 <fileset
dir="${jmeter.home}/lib" includes="xalan*.jar"/>
48 <fileset dir="${jmeter.home}/lib"
includes="serializer*.jar"/>
49 </path>
50
51
52 <target
name="report">
53 <tstamp> <format
property="report.datestamp" pattern="yyyy/MM/dd HH:mm"
/></tstamp>
54 <xslt
55
classpathref="xslt.classpath"
56
force="true"
57
in="${jmeter.result.jtlName}"
58
out="${jmeter.result.htmlName}"
59
style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl">
60 <!--param name="showData"
expression="${show-data}" /-->
61 <param
name="dateReport" expression="${report.datestamp}"/>
62 </xslt>
63 <!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 -->
64 <copy
todir="${jmeter.result.html.dir}">
65 <fileset
dir="${jmeter.home}/extras">
66 <include
name="collapse.png" />
67 <include
name="expand.png" />
68 </fileset>
69 </copy>
70 </target>
71
72
73 </project>
六、报告优化
- 添加展示响应数据内容
- 添加响应数据过长换行功能
- 编辑jmeter-results-detail-report_21.xsl 查看响应数据,修改为:
- 需要删除build文件中的showData配置,否则会导致编译出来的仍然不显示
以上是关于Jenkins+Jmeter+Ant持续集成的主要内容,如果未能解决你的问题,请参考以下文章