zoukankan      html  css  js  c++  java
  • 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(报告优化详解)

  • 相关阅读:
    Nginx资源合并优化模块nginx-http-concat
    Nginx的模块http_secure_link_module
    Nginx前段加速模块pagespeed-ngx
    Naxsi+nginx前段保护
    Selenium for C#的入门Demo
    C# 比较两个数组中的内容是否相同的算法
    C#读取自定义的config
    关于分布式计算之Actor、AKKA和MapReduce
    numpy模块的基本使用
    python单元测试库
  • 原文地址:https://www.cnblogs.com/wangcp-2014/p/4833020.html
Copyright © 2011-2022 走看看