一、工具的安装与环境变量配置

1、依次安装Jenkins+Jmeter+Ant,具体安装步骤,此文不再详述

2、配置Jmeter&ant环境变量

Jmeter变量:

验证是否配置成功:cmd窗口非jmeter安装目录,输入jmeter.bat可打开jmeter程序,说明配置成功

ant变量:

验证是否配置成功,cmd窗口输入ant -version,返回如图所示,表明配置成功

二、编写Jmeter脚本和build.xml文件

1、编写Jmeter脚本

2、编写build.xml文件,内如如下,

ps:需要下载依赖jar包:xalan*.jar,serializer*.jar并复制到ant安装目录下的lib目录下;下载jmeter.results.shanhe.me.xsl文件并复制到jmeter的extras目录下,优化测试报告显示

 <?xml version="1.0" encoding="UTF-8"?>  

 <project name="zhtx_chaoshi" default="report" basedir=".">
<tstamp>
<!--format property="time" pattern="yyyyMMddkkmm" /-->
<format property="date" pattern="yyyy/MM/dd kk:mm:ss"/>
<!--kk是24小时制,KK是12小时制-->
</tstamp>
<!-- 需要改成自己本地的 Jmeter 目录-->
<property name="jmeter.home" value="D:/apache-jmeter-3.1" />
<property name="report.title" value="Jmeter_zhtxAPITestReport"/>
<!-- jmeter生成jtl格式的结果报告的路径-->
<property name="jmeter.result.jtl.dir" value="D:/Jenkins/workspace/超市自动下单/jtl" />
<!-- jmeter生成html格式的结果报告的路径-->
<property name="jmeter.result.html.dir" value="D:/Jenkins/workspace/超市自动下单/html" />
<!-- 生成的报告的前缀-->
<!-- 生成的报告的名称-->
<property name="ReportName" value="DetailsReport" />
<property name="ReportName2" value="SummaryReport" />
<!--jtl的value值是D:\Jenkins\jmxReport\jtl\TestReport+yyyyMMddhhmm.jtl-->
<!--html的value值是D:\Jenkins\jmxReport\html\TestReport+yyyyMMddhhmm.html-->
<property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}.jtl" />
<property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}.html" />
<property name="jmeter.result.htmlName2" value="${jmeter.result.html.dir}/${ReportName2}.html" /> <!-- 工程引用包 -->
<property name="lib.home" value="D:/apache-jmeter-3.1/xjar"/>
<!--jmx文件存放位置-->
<property name="jmxFile" value="D:/apache-jmeter-3.1/jmx"/> <!--项目初始化设置-->
<target name="init" description="init" >
<!--删除jtl文件夹下生成的所有文件及文件夹包括空目录,但不删除根目录-->
<delete verbose="true" includeemptydirs="true" >
<fileset dir="${jmeter.result.jtl.dir}" >
<include name="**/*" />
</fileset>
</delete>
<!--删除html文件夹下生成的所有文件及文件夹包括空目录,但不删除根目录-->
<delete>
<fileset dir="${jmeter.result.html.dir}">
<include name="**/*"/>
</fileset>
</delete>
<!--<delete dir="${classes.home}"/>
<mkdir dir="${classes.home}"/>-->
</target> <target name="test" depends="init">
<taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
<jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
<!-- 声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本-->
<testplans dir="${jmxFile}" includes="超市订单online.jmx" />
<!--声明生成的jtl文件是xml格式,否则会报错 -->
<property name="jmeter.save.saveservice.output_format" value="xml"/>
</jmeter>
</target>
<path id="xslt.classpath">
<fileset dir="${lib.home}" includes="xalan*.jar"/>
<fileset dir="${lib.home}" includes="serializer*.jar"/>
</path> <target name="report" depends="test" > <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="titleReport" expression="${report.title}"/>
<param name="dateReport" expression="${date}"/>
</xslt>
<xslt
classpathref="xslt.classpath"
force="true"
in="${jmeter.result.jtlName}"
out="${jmeter.result.htmlName2}"
style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl">
<param name="titleReport" expression="${report.title}"/>
<param name="dateReport" expression="${date}"/>
</xslt>
<!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 -->
<copy todir="${jmeter.result.html.dir}">
<fileset dir="${jmeter.home}/extras">
<include name="collapse.png" />
<include name="expand.png" />
</fileset>
</copy>
</target> </project>

build.xml

三、编辑配置文件

1、ant-jmeter-1.1.1.jar复制到jmeter的extras目录下

2、修改D:\apache-jmeter-3.1\bin下的jmeter.properties属性文件

# assertion_results_failure_message only affects CSV output
jmeter.save.saveservice.assertion_results_failure_message=true
#
# legitimate values: none, first, all
#jmeter.save.saveservice.assertion_results=none
#
jmeter.save.saveservice.data_type=true
jmeter.save.saveservice.label=true
jmeter.save.saveservice.response_code=true
#response_data is not currently supported for CSV output
jmeter.save.saveservice.response_data=true
#Save ResponseData for failed samples
jmeter.save.saveservice.response_data.on_error=false
jmeter.save.saveservice.response_message=true
jmeter.save.saveservice.successful=true
jmeter.save.saveservice.thread_name=true
jmeter.save.saveservice.time=true
jmeter.save.saveservice.subresults=true
#jmeter.save.saveservice.assertions=true
jmeter.save.saveservice.latency=true
jmeter.save.saveservice.connect_time=true
jmeter.save.saveservice.samplerData=true
jmeter.save.saveservice.responseHeaders=false
jmeter.save.saveservice.requestHeaders=true
jmeter.save.saveservice.encoding=false
jmeter.save.saveservice.bytes=true
# Only available with HttpClient4
jmeter.save.saveservice.sent_bytes=true
jmeter.save.saveservice.url=false
jmeter.save.saveservice.filename=false
jmeter.save.saveservice.hostname=true
jmeter.save.saveservice.thread_counts=true
jmeter.save.saveservice.sample_count=false
jmeter.save.saveservice.idle_time=true

jmeter.properties

3、打开jenkins,安装所需插件并创建job

3.1、安装所需插件Email Extension Plugin,发送邮件

方法一:进入系统管理-管理插件--可选插件,安装

方法二:官网下载插件,然后进入进入系统管理-管理插件--高级设置,选择上传已下载好的插件

3.2 创建job,如图所示,job名字自定义

配置job

配置Editable Email Notification

设置发送邮件触发器

进入jenkins系统设置下,编辑邮件配置,如图所示

邮件正文内容如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>${PROJECT_NAME}-第${BUILD_NUMBER}次构建日志</title>
</head> <body size="4" leftmargin="8" marginwidth="0" topmargin="8" marginheight="4"
offset="0">
<table width="95%" cellpadding="0" cellspacing="0"
style="font-size: 20pt; font-family: Tahoma, Arial, Helvetica, sans-serif">
<tr>
<td>(本邮件是程序自动下发的,请勿回复!)</td>
</tr>
<tr>
<td><h2>
<font color="#0000FF">构建状态 - ${BUILD_STATUS}</font>
</h2></td>
</tr>
<tr>
<td><br />
<b><font color="#0B610B">构建信息</font></b>
<hr size="3" width="100%" align="center" /></td>
</tr>
<tr>
<td>
<ul>
<li>项目名称 : ${PROJECT_NAME}</li>
<li>构建编号 : 第${BUILD_NUMBER}次构建</li>
<li>触发原因: ${CAUSE}</li>
<li>构建日志: <a href="${BUILD_URL}console">${BUILD_URL}console</a></li>
<li >变更集:${JELLY_SCRIPT,template="html"}</a></li>
<li>SummaryReport:${FILE, path="D:/Jenkins/workspace/超市自动下单/html/SummaryReport.html"}
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></a></li> </ul>
<hr size="3" width="100%" align="center" />
</td>
</tr> </table>
</body>
</html>

邮件正文内容

到此,环境搭建成功,接下来构建查看结果显示

四、构建

1、选择创建的job,选择构建

查看构建日志

构建成功,自动发送测试报告邮件,截图如下

Jenkins+Jmeter+Ant自动化集成及邮件正文以html输出的更多相关文章

  1. Jenkins + Jmeter +Ant自动化集成环境搭建(一)

    所需工具 一.jmeter 工具下载 https://jmeter.apache.org/  配置环境JDK等及各种插件可以看小七之前的教程 二.Ant安装(http://ant.apache.org ...

  2. Jenkins+Jmeter+Ant自动化集成环境搭建

    1.搭建环境,安装以下工具 JDK:jdk1.7.0_79 Ant:apache-ant-1.9.7 Jmeter: apache-jmeter-3.0 Jenkins: jenkins-1.651. ...

  3. jenkins,jmeter,ant持续集成

    1.安装 jenkins, jmeter, ant   2.将 jmeter下extras中的 ant-jmeter-1.1.1.jar拷贝到ant的lib下面 3.将 jmeter下collapse ...

  4. Jenkins+Jmeter+Ant自动化持续集成环境搭建

    [前言] 今天让我们先把准备工作做好 >> 搭建环境! [正文] JDK+Jmeter安装教程: 参考博客:https://www.cnblogs.com/baoziluo/p/79056 ...

  5. 我的套路(windows):Jenkins+Jmeter+Ant持续集成

    前期准备: 1.Jdk1.6或以上:http://www.oracle.com/technetwork/java/javase/downloads/index.html 命令行输入:java -ver ...

  6. linux+jenkins+jmeter+ant持续集成

    0.安装jdk 1.下载jdk8 登录网址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151 ...

  7. jenkins+ant+jmeter实现自动化集成(详解)

    jenkins+ant+jmeter实现自动化集成 for window 一.jmeter 1.jmeter安装 二.ant 1.ant安装 三.ant运行 jmeter脚本 1.配置 四.jenki ...

  8. Jenkins+Jmeter+Ant接口持续集成

    修改时间 修改内容 修改人 2016.5.22 创建 刘永志 2016.6.15 完成 刘永志 前言: 为什么要用Jmeter做接口测试: 当选择这套方案的时候,很多人会问,为什么选择Jmeter做C ...

  9. Jenkins+Jmeter+Ant 接口持续集成(转)

    来源:https://testerhome.com/topics/5186 为什么要用Jmeter做接口测试 当选择这套方案的时候,很多人会问,为什么选择Jmeter做Case管理?为什么不自己写框架 ...

随机推荐

  1. HTML5的新标签之一的Canvas

    一. <canvas>简介(了解) 1. 什么是canvas: 是HTML5提供的一种新标签 <canvas></canvas>  英 ['kænvəs]  美 [ ...

  2. 传输层——UDP报文头介绍

    16位源端口 16位目的端口 16位总长度 16位校验和 数据 源端口:长度为16位,2个字节. 目的端口:长度为16位,2个字节. 总长度:长度为16位,2个字节,表示 UDP包头长度 和 数据长度 ...

  3. windows7 IIS7报错:如果要使用托管的处理程序,请安装 ASP.NET

    IIS7报错:如果要使用托管的处理程序,请安装 ASP.NET windows7,部署在本地的IIS7里以后,结果不能访问承载SL的.aspx页面,而如果用.html承载则可以访问. 亲测可用修复办法 ...

  4. h5内容初探

    h5简介: h5新特性 h5新增标签 article  和  section 的区别相当于 div  和  p标签的区别 1—6都是块级元素 h5新增属性 拖放 拖动事件 <style> ...

  5. CAP与Base理论

    分布一致性的提出 在分布式系统中要解决的一个重要问题就是数据的复制.在我们的日常开发经验中,相信很多开发人员都遇到过这样的问题:假设客户端C1将系统中的一个值K由V1更新为V2,但客户端C2无法立即读 ...

  6. clone()与image和 cloneTo()

    Mat image = imread("1.png" ) ; Mat image1 ; Mat image1(image) ;//仅是创建了Mat的头部分,image1与image ...

  7. js 继承的方式

    //定义object的继承方法 Object.extend = function(destination, source) { for(property in source) { destinatio ...

  8. 媒体类型 & 媒体查询

    [媒体类型 & 媒体查询] @media 规则允许在相同样式表为不同媒体设置不同的样式. 在下面的例子告诉我们浏览器屏幕上显示一个14像素的Verdana字体样式.但是如果页面打印,将是10个 ...

  9. The number of method references in a .dex file cannot exceed 64K.(转)

    前言 我一直都知道app里面的方法数是有限制的差不多64000,具体的就未曾考证了在遇到这个问题之前,一直以为这个一个多么遥远的距离其实并不是的,稍有不慎这个异常出来了当前并不是你真的有编写了64k的 ...

  10. flash as3.0 截图保存图片

    import flash.display.MovieClip; import flash.events.MouseEvent; import flash.filesystem.*; ///////// ...