ant+jmeter+crontab实现自动化性能测试

时间:2023-03-09 00:50:18
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"?>

ant+jmeter+crontab实现自动化性能测试
<?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+jmeter+crontab实现自动化性能测试

进入ant安装目录,运行ant 结果如图:

ant+jmeter+crontab实现自动化性能测试

html报告如图:

ant+jmeter+crontab实现自动化性能测试

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命令详解)

http://www.cnblogs.com/puresoul/p/5053035.html(报告优化详解)