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

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

原文地址:https://www.cnblogs.com/wangcp-2014/p/4833020.html