ant 执行jmeter脚本

  • 环境准备

1、jdk版本:java version "1.8.0_201"

2、jmeter版本:5.0

3、ant版本:Apache Ant(TM) version 1.10.5

版本都是对应的,看似一切美好;

4、将 jmeter的extras目录中ant-jmeter-1.1.1.jar包拷贝至ant安装目录下的lib目录中

5、修改Jmeter的bin目录下jmeter.properties文件的配置:jmeter.save.saveservice.output_format=xml  

  • 脚本准备

导出的脚本为baidu.jmx,并把结果模板文件拷过来,配置build.xml 

命令行中,切换到当前目录,执行run命令就可以了;

不过出问题了,执行run后,走到输出jml文件的时候就提示遇到严重问题 java se停止运行,查了不少资料,之前的build是从jmeter里拷过来的,后来准备放弃了,想再试下会不会是build文件的问题,就从网上考了一个下来,没想到还真是build文件的问题:

<?xml version="1.0" encoding="UTF-8"?>  
  
<project name="ant-jmeter-test" default="run" basedir=".">  
      
    <tstamp>  
        <format property="time" pattern="yyyyMMddhhmm" />  
    </tstamp>
    <!-- jmeter中extras路径 -->
    <property name="basedirectory" value="C:UsersadminDesktopjmeterapache-jmeter-5.0apache-jmeter-5.0extras" />  
    <!-- 需要改成自己本地的 Jmeter 目录-->    
    <property name="jmeter.home" value="C:UsersadminDesktopjmeterapache-jmeter-5.0apache-jmeter-5.0" />  
    <!-- jmeter生成jtl格式的结果报告的路径-->   
    <property name="jmeter.result.jtl.dir" value="C:UsersadminDesktopjmeterapache-jmeter-5.0demoant
eport" />  
    <!-- jmeter生成html格式的结果报告的路径-->  
    <property name="jmeter.result.html.dir" value="C:UsersadminDesktopjmeterapache-jmeter-5.0demoant
eport" />  
    <!-- Name of test (without .jmx) -->  
    <property name="test" value="Test"/>  
    <!-- 生成的报告的前缀-->    
    <property name="ReportName" value="TestReport" />  
    <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${test}.jtl" />  
    <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${test}.html" />  
    <property name="jmeter.save.saveservice.output_format" value="xml"/> 
    <path id="xslt.classpath">  
        <fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>  
        <fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>  
    </path>  
    
    <!-- 运行了两个标签中的内容-->  
    <target name="run">  
        <!--测试脚本标签对应下面的jMeter脚本-->
        <antcall target="test" /> 
        <!--测试脚本标签对应下面的jMeter脚本后产生测试报告的--> 
        <antcall target="report" />  
    </target>  
     
    <!--JMeter脚本执行,name属性值和上面name中标签下的<antcall target="test" /> target值对应-->
    <target name="test">  
 
    <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />   
    <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">  
             <!-- 声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本--> 
             <!-- 此处看到别人的includes="*.jmx"我没试过,只用系统自带的一个脚本Test.jmx脚本,式了下可以用-->  
            <testplans dir="C:UsersadminDesktopjmeterapache-jmeter-5.0demoant" includes="baidu.jmx" />  
        </jmeter>  
    </target>  
 
     <!--JMeter脚本执行,name属性值和上面name中标签下的<antcall target="report" /> target值对应-->     
    <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="C:UsersadminDesktopjmeterapache-jmeter-5.0demoantjmeter-results-detail-report_21.xsl"> 
              <!-- jmeter报告模板-->  
              <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>
  • 运行,生产的报告如下

原文地址:https://www.cnblogs.com/shilimaixiang/p/10465001.html