ant+jmeter+crontab实现自动化性能测试
准备工作:
1.下载jmeter(我下载的apache-jmeter-2.13.zip)
2、配置jmeter环境变量,即path前添加jmeter的bin路径)
3、下载ant(我使用的apache-ant-1.9.6.zip)
4、配置ant环境变量(即path前添加ant的bin路径)保存,linux下执行命令source /etc/profile使环境变量即时生效。
5、将jmeter目录下的ant-jmeter-1.1.1.jar (目录为apache-jmeter-2.13/lib/ext/)拷贝到ant的lib目录下,这样Ant运行时才能找到"org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"这个类,从而成功触发JMeter脚本。
(Ant自带了把XML转化为html的lib库,用ant将jmeter生成的xml报告转化成html类型报告)
6、在Ant安装根目录下新建文件build.xml,将jmeter目录下../apache-jmeter-2.13/extras下的xls模板内容拷贝到新建的文件build.xml内。
http://zfy421.iteye.com/blog/2191525
http://www.51testing.com/html/77/n-863477-2.html
我从网上搜到的代码(实践过可用,不过缺少最大响应时间和最小响应时间值),可参<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?> <project name="ant-jmeter-test" default="run" basedir="."> <!-- 需要改成自己本地的 Jmeter 目录--> <property name="jmeter.home" value="/Users/Tools/Jmeter" /> <property name="report.title" value="接口测试"/> <!-- jmeter生成jtl格式的结果报告的路径--> <property name="jmeter.result.jtl.dir" value="/Users/Desktop/jmx/report" /> <!-- jmeter生成html格式的结果报告的路径--> <property name="jmeter.result.html.dir" value="/Users/Desktop/jmx/report" /> <!-- 生成的报告的前缀--> <property name="ReportName" value="TestReport" /> <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}.jtl" /> <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}.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="/Users/Desktop/jmx" includes="*.jmx" /> <!--解决jtl文件转化成xml文件时报错问题--> <property name="jmeter.save.saveservice.output_format" value="xml"/> </jmeter> </target> <path id="xslt.classpath">//jar的路径 <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>
进入ant安装目录,运行ant 结果如图:
html报告如图:
7、通过crontab –e来创建自己的定时任务
crontab文件一般位于/etc/下,这里面存放系统运行的的调度程序。
# sudo root 切换到root用户
# cd /etc/
# crontab -l 查看当前定时任务
# crontab -e 添加定时任务
进入crontab文件 文件里添加定时任务命令,命令语法如下
0 16 * * 5 ant安装根路径/bin/ant -file ant安装根路径/build.xml
:wq (保存退出)
命令讲解:每周五下午4:00执行定时任务
[* * * * * 执行命令 (即minute hour day month week command)]
http://www.cnblogs.com/wangcp-2014/p/4832994.html(crontab命令详解)