这里不在说jmeter和jdk的安装可以看(https://blog.csdn.net/weixin_43168065/article/details/87199830)
一、配置ant环境
1、去Apache官网上http://ant.apache.org/bindownload.cgi下载ant,我下载的是apach-ant-1.10.7
2、下完之后解压,放到一个目录下面。我把它和jmeter都放在了一个目录下C:\jmeter\apache-ant-1.10.7
3、配置环境变量,与jmeter类似。
新建系统变量ANT_HOME,值C:\jmeter\apache-ant-1.10.7
系统变量CLASSPATH,值后面添加C:\jmeter\apache-ant-1.10.7\lib
系统变量Path,值后面添加C:\jmeter\apache-ant-1.10.7\bin
cmd下,输入ant,结果如下图所示,"build.xml does not exist "说明ant配置成功
二、Jmeter与Ant集成使用
准备环境:jdk1.8.0_60,环境变量的配置;jmeter5.0安装,环境变量的配置;ant1.10.7的安装,环境变量的配置
1、将C:\jmeter\apache-jmeter-5.0\extras文件夹下的ant-jmeter-1.1.1.jar这个jar包复制到C:\jmeter\apache-ant-1.10.7\lib文件夹下
2、打开C:\jmeter\apache-jmeter-5.0\bin\jmeter.properties 将jmeter.save.saveservice.output_format=csv 改成 jmeter.save.saveservice.output_format=xml,记得去掉前面的“#”
3、.jmx脚本放置C:\jmeter\apache-jmeter-5.0\extras下
4、进入C:\jmeter\apache-jmeter-5.0\extras,打开build.xml文件,进行配置
第一处要修改的地方:
<!-- Name of test (without .jmx) -->
<property name="test1" value="insight2.0-180720"/>
此处填写你要测试的脚本,后面不用写.jmx,只用写文件名。这里的意思为test1的值为insight2.0-180720,你将要测试的脚本就是insight2.0-180720.jmx
当然property name的也可以取其他的,test、a、b.....等等都可以,简单理解为一个变量名,value就是变量值。
第二处要修改的地方:
在<target name = "run"> 下面修改子标签jmeter
<jmeter
jmeterhome="${jmeter.home}"
testplan ="${testpath}/${test1}.jmx"
resultlog="${testpath}/${test1}.jtl">
</jmeter>
这里就开始运行jmx脚本了,测试计划testplan的值就是上一处你定义的test1;
resultlog就是执行jmx之后生成的日志文件,它会默认保存在extras文件夹下。
第三处要修改的地方:
在<target name="xslt-report" depends="_message_xalan">下面修改子标签xslt
<xslt
classpathref="xslt.classpath"
force="true"
in="${testpath}/${test1}.jtl"
out="${testpath}/${test1}.html"
........
</xslt>
这里做的工作是,将jmeter执行之后生成的jtl文件,编译构建成HTML文件,默认保存在extras文件夹下。
仔细看,in等于的就是上一处的rasultlog,out的后缀为html
第四处要修改的地方:
我想每执行一次脚本,就生成一个HTML、一个jtl文件,并且文件名能显示每次执行的时间。这里可以联想到时间戳,每次运行结果都生成不一样的文件。
1、定义指定格式的时间变量。可以直接在target name =run下定义
<tstamp>
<format property="time" pattern="yyyy-MM-dd-HH-mm-ss"/>
</tstamp>
2、在jmeter标签下,修改jtl文件的存储路径
<jmeter
jmeterhome="${jmeter.home}"
testplan ="${testpath}/${test1}.jmx"
resultlog="${testpath}/${test1}/${time}.jtl">
...</jmeter>
3、在xslt标签下,修改in、out的路径
<xslt
classpathref="xslt.classpath"
force="true"
in="${testpath}/${test1}/${time}.jtl"
out="${testpath}/${test1}/${time}.html"
.....</xslt>
第五处如果需要执行多个脚本配置如下:
build.xml文件无法使用*.jmx执行extras目录下所有的jmx文件,那么如果想每一次想执行多个脚本怎么办呢??目前想到了一个解决办法。大概思路就是,定义多个变量,分别执行。
<!-- Name of test (without .jmx) -->
<property name="test1" value="要执行的脚本1"/>
<property name="test2" value="要执行的脚本2"/>
<property name="test3" value="要执行的脚本3"/>
5、修改完build.xml文件之后,就可以试一下jmeter+ant的集成有没有成功,打开命令提示符,进入到C:\jmeter\apache-jmeter-5.0\extras,在这里5、修改完build.xml文件之后,就可以试一下jmeter+ant的集成有没有成功,打开命令提示符,进入到C:\jmeter\apache-jmeter-5.0\extras,在这里输入ant输入ant
三、集成jenkins+ant+jmeter
1、下载jmeter.results.shanhe.me.xsl放到jmeter的extras目录下
2、jmeter_ant_jenkins jmeter路径下
--jmeter_script 存放jmeter脚本 .jmx
--result
--html 存放生成的html测试报告
--html1存放生成的html测试报告
--jtl 存放生成的jtl测试报告
build.xml 创建build文件
build.xml文件内容如下:
<?xml version="1.0" encoding="utf-8"?>
<!-- 名称 -->
<project name="uncleyong_jmeter_test" default="all" basedir=".">
<tstamp>
<format property="time" pattern="yyyyMMdd_hhmmss" />
</tstamp>
<!-- 需要改成自己本地的 Jmeter 目录-->
<property name="jmeter.home" value="D:\solfware\apache-jmeter-5.1.1" />
<!-- jmeter生成jtl格式的结果报告的路径-->
<property name="jmeter.result.jtl.dir" value="D:\solfware\apache-jmeter-5.1.1\jmeter_ant_jenkins\result\jtl" />
<!-- jmeter生成html格式的结果报告的路径-->
<property name="jmeter.result.html.dir" value="D:\solfware\apache-jmeter-5.1.1\jmeter_ant_jenkins\result\html" />
<property name="jmeter.result.html.dir1" value="D:\solfware\apache-jmeter-5.1.1\jmeter_ant_jenkins\result\html1" />
<!-- 生成的报告的前缀 -->
<property name="ReportName" value="result_" />
<property name="ReportName1" value="result_1" />
<property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" />
<property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}${time}.html" />
<property name="jmeter.result.htmlName1" value="${jmeter.result.html.dir1}/${ReportName}${time}.html" />
<!-- 电脑地址 -->
<property name="ComputerName" value="jmeter_ant_jenkins" />
<target name="all">
<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}">
<!-- 声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本 -->
<testplans dir="D:\solfware\apache-jmeter-5.1.1\jmeter_ant_jenkins\jmeter_script" 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="dateReport" expression="${report.datestamp}"/>
</xslt>
<xslt classpathref="xslt.classpath" force="true" in="${jmeter.result.jtlName}" out="${jmeter.result.htmlName1}" 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>
2、集成jenkins配置及构建
第一步:管理员登录jenkins系统,进入系统管理》插件管理,查看是否安装Ant Plugin,否的话继续安装即可
第二步:安装完成之后,进入系统管理》全局工具配置,配置ANT变量路径
第三步:配置JDK和ANT,点应用-保存
Name随便填写,ANT_HOMEt填写自己的JDK和ANT安装目录
第四步:新建job,输入任务名,新建一个自由风格的任务,点确定
第五步:构建—增加构建步骤,选Invoke Ant,展开Targes,点开高级,配置如下,点应用-保存
Build File: D:\solfware\apache-jmeter-5.1.1\jmeter_ant_jenkins
第六步:安装插件HTML Publisher
同ant安装
第七步:点创建的任务—配置,构建后操作选Publish HTML reports
第八步:点新增,配置如下,点应用保存
HTML directory to archive 存放html测试报告的路径
D:\solfware\apache-jmeter-5.1.1\jmeter_ant_jenkins\result\html
Index page[s] 配置所有html *.html