我的套路(windows):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
<?xml version="1.0" encoding="UTF-8"?> <project name="ant-jmeter-test" default="run" basedir=".">
<tstamp>
<format property="time" pattern="yyyyMMddhhmm" />
</tstamp> <property environment="env"/>
<property name="ReportName" value="TestReport" /> <!-- 需要改成自己本地的 Jmeter 目录-->
<property name="jmeter.home" value="D:\Jmeter-3.0" />
<!-- jmeter生成jtl格式的结果报告的路径-->
<property name="jmeter.result.jtl.dir" value="${env.WORKSPACE}/results/${env.BUILD_ID}" />
<!-- jmeter生成html格式的结果报告的路径-->
<property name="jmeter.result.html.dir" value="D:\Jmeter-3.0\demo\report\html" />
<!-- 生成的报告的前缀-->
<property name="jmeter.result.jtlName" value="${jmeter.result.dir}/${ReportName}.jtl" />
<property name="jmeter.result.htmlName" value="${jmeter.result.dir}/${ReportName}.html" /> <target name="run">
<echo message="start..."/>
<antcall target="clean" />
<antcall target="test" />
<antcall target="report" />
</target> <target name="clean">
<mkdir dir="${env.WORKSPACE}/results/${env.BUILD_ID}" />
</target> <target name="test">
<taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
<jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
<!-- 声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本-->
<testplans dir="D:\Jmeter-3.0\demo" includes="*.jmx" /> <property name="jmeter.save.saveservice.output_format" value="xml"/> </jmeter>
</target> <path id="xslt.classpath">
<fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>
<fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>
</path> <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-detail-report_21.xsl">
<!--param name="showData" expression="${show-data}" /-->
<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>
六、报告优化
- 添加展示响应数据内容
- 添加响应数据过长换行功能
- 编辑jmeter-results-detail-report_21.xsl 查看响应数据,修改为:

需要删除build文件中的showData配置,否则会导致编译出来的仍然不显示

我的套路(windows):Jenkins+Jmeter+Ant持续集成的更多相关文章
- jenkins,jmeter,ant持续集成
1.安装 jenkins, jmeter, ant 2.将 jmeter下extras中的 ant-jmeter-1.1.1.jar拷贝到ant的lib下面 3.将 jmeter下collapse ...
- linux+jenkins+jmeter+ant持续集成
0.安装jdk 1.下载jdk8 登录网址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151 ...
- Jenkins+Jmeter+Ant自动化集成及邮件正文以html输出
一.工具的安装与环境变量配置 1.依次安装Jenkins+Jmeter+Ant,具体安装步骤,此文不再详述 2.配置Jmeter&ant环境变量 Jmeter变量: 验证是否配置成功:cmd窗 ...
- Jenkins + Jmeter +Ant自动化集成环境搭建(一)
所需工具 一.jmeter 工具下载 https://jmeter.apache.org/ 配置环境JDK等及各种插件可以看小七之前的教程 二.Ant安装(http://ant.apache.org ...
- Jenkins+Jmeter+Ant自动化集成环境搭建
1.搭建环境,安装以下工具 JDK:jdk1.7.0_79 Ant:apache-ant-1.9.7 Jmeter: apache-jmeter-3.0 Jenkins: jenkins-1.651. ...
- jmeter --- 搭建持续集成接口测试平台(Jenkins+Ant+Jmeter)
jmeter --- 搭建持续集成接口测试平台(Jenkins+Ant+Jmeter) 一.环境准备: 1.JDK:http://www.oracle.com/technetwork/java/jav ...
- Jenkins+Ant+Git+Jmeter实现持续集成
个人记录: 基本的配置与Jenkins+Ant+SVN+Jmeter实现持续集成的配置一样,主要在Jenkins的配置上的区别会有所不同 安装的插件: enkins安装好之后,需要为其安装gitlab ...
- jmeter+ant+jenkins 接口自动化测试持续集成(送源码)
9.1 安装和介绍 JMeter 安装文件路径:https://pan.baidu.com/s/1kVJdnuv. JMeter 是轻量级的开源且稳定的自动化测试工具. 思路:在接口说明文档中整理 ...
- Jenkins在Windows系统dotnet平台持续集成
之前写过一篇文章是在CentOS上构建.net自动化编译环境, 今天这篇是针对于Windows平台的环境. Jenkins是一个开源软件项目,旨在提供一个开放易用的软件平 ...
随机推荐
- JS 删除字符串最后一个字符的几种方法
字符串:string s = "1,2,3,4,5," 目标:删除最后一个 "," 方法:1.用的最多的是Substring,这个也是我一直用的 s=s.Sub ...
- Form 数据库的顺序
form buidler 中数据库的上下排列顺序也很重要,开发中无心把LINE的数据块放在HEADER数据块之上, 导致在新增数据的时候先去insert LINE数据块(没有生成HEADER_ID的 ...
- 转: Oracle Form 中commit 与do_key('commit_form')区别
1.commit_form针对form上面的数据变动进行commit,对于代码中的类似update,insert语句也进行提交:如果form上面的数据变动和代码中的数据变动有冲突,最后以界面上的为准. ...
- 关于为busybox设置setuid
安卓root了,重启之后就没root权限了,于是想到了为 busybox 设置 setuid 来实现使用root的身份执行命令. 可是,不管用啊,还是提示没有权限.搜了一下 busybox setui ...
- 解决ADB端口占用问题
方式一5037为adb默认端口,若5037端口被占用,查看占用端口的进程PIDC:\Users\wwx229495>netstat -aon|findstr 5037 TCP 127. ...
- 数据库连接driverClass和jdbcUrl大全
一.MySQL: driverClass:com.mysql.jdbc.Driver org.gjt.mm.mysql.Driver jdbcUrl:j ...
- redis入侵
一.前言 前段时间,在做内网影响程度评估的时候写了扫描利用小脚本,扫描后统计发现,内网中60%开放了redis6379端口的主机处于可以被利用的危险状态,因为都是一些默认配置造成的考虑到本社区大部分开 ...
- easyui editor combobox multiple
$.extend($.fn.datagrid.defaults.editors,{ combobox: { init: function(container, options){ var combo ...
- [问题2014A02] 解答一(两次升阶法,由张钧瑞同学、董麒麟同学提供)
[问题2014A02] 解答一(两次升阶法,由张钧瑞同学.董麒麟同学提供) 将原行列式 \(|A|\) 升阶,考虑如下 \(n+1\) 阶行列式: \[|B|=\begin{vmatrix} 1 &a ...
- Swift高级语法学习总结
Swift基础语法学习总结Swift高级语法学习总结Swift语法总结补充(一) 1.函数 1.1 func funcNmae()->(){} 这样就定义了一个函数,它的参数为空,返回值为空,如 ...