作技术的就爱折腾, 看到哪里不够完美,就想把它改改, 使其顺眼.html
一样Jmeter输出的报告实在差强人意, 截图发给领导看不够美观, 缺乏统计汇总, 有什么方法给对方一个地址就能够浏览报告? 答案是确定的.正则表达式
我是mac机, windows同样能够实现, 环境变量设置略有不一样, 其余大同小异.数据库
Ant安装配置express
一、从http://ant.apache.org 上下载tar.gz版antapache
二、使用cp复制到/usr下windows
三、tar -vxzf apache-ant-1.9.0-bin.tar.gz 解压tomcat
四、vi /etc/profile // 配置环境变量(windows的配置更简单path里直接添加)微信
#set Antapp
export ANT_HOME=/usr/apache-ant-1.9.0工具
export PATH=$PATH:$ANT_HOME/bin
window中设置ant环境变量:
新建:ANT_HOME:E:\Program Files\apache-ant-1.9.1 //路径和版本本身修改
path 追加:%ANT_HOME%\bin
五、source /etc/proifle //配置当即生效
六、ant -version //测试ant是否生效
很早以前就配置过ant, 就懒得再去下个新版本, 这里是1.9.0
ant是一个很是成熟的工具, 存在时间久远, 后起之秀有Maven 还有gradle, 实用性可读性更加.
Jmeter建议使用3.3 以上版本, 须要配合 jdk1.8使用, 3.1是jdk 1.7
个人jmeter目录以下
/Users/louiezhou/Downloads/download/apache-jmeter-3.1/bin
在bin下建立一个目录
将jmx文件(就是你的jmeter脚本文件)放在该目录下
同时建立build.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<project name="ant-jmeter-test" default="run" basedir=".">
<tstamp>
<format property="time" pattern="yyyyMMddhhmm"/>
</tstamp>
<!-- 须要改为本身本地的 Jmeter 目录 -->
<property name="jmeter.home" value="[修改路径]/apache-jmeter-3.1/"/>
<!-- 生成html和jtl的路径地址,我这里直接放在tomcat发布目录下 -->
<property name="jmeter.result.html.dir" value="[html报告输出路径]"/>
<property name="jmeter.result.jtl.dir" value="[jtl输出路径]"/>
<!-- 生成的报告的前缀-->
<property name="ReportName" value="TestReport" />
<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"/>
<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}">
<!-- 声明要运行的脚本。"*.jmx"指包含此目录下的全部jmeter脚本 -->
<testplans dir="[修改本身jmeter所在目录]apache-jmeter-3.1/bin/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="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>
1. 将JMeter所在目录下extras子目录里的ant-JMeter-1.1.1.jar复制到Ant所在目录lib子目录之下,这样Ant运行时才能找到"org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"这个类,从而成功触发JMeter脚本.
2. 其次修改Jmeter的bin目录下jmeter.properties文件的配置:jmeter.save.saveservice.output_format=xml
进入jmeter的bin自建目录下:
/Users/louiezhou/Downloads/download/apache-jmeter-3.1/bin/demo
遇到的坑:
XML 文档结构必须从头到尾包含在同一个实体内
解决方法:xml文件中标签不完整,没有结束标签
报以下错误
taskdef class org.programmerplanet.ant.taskdefs.jmeter.JMeterTask cannot be found
生成报告完美:
这里面还有个问题 ,就是执行屡次report会被覆盖掉, 思路是使用时间戳的方式区分不一样report, 扩展了还能够和Jenkins集成. 赶快动手来实践吧, 看百遍不如本身作一遍.
今日推荐阅读文章精选推荐
咨询工做加微信
扫描二维码
欢迎自荐和推荐, 须要的微信推送简历!
请猛戳下面二维码了解更多