JMeter使用Ant生成测试报告

一、软件的安装

1、JDK:JMeter和ANT的运行都依赖于java的环境

1)系统变量→新建 JAVA_HOME 变量 。

变量值填写jdk的安装目录(本人是 D:\Java\jdk1.7.0_79);

2)系统变量→寻找 Path 变量→编辑

在变量值最后输入 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

(注意原来Path的变量值末尾有没有;号,如果没有,先输入;号再输入上面的代码)

3)系统变量→新建 CLASSPATH 变量

变量值填写 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar (注意最前面有一点)

4)检查,在控制台输入:java -version  会显示出java的版本号

2、JMeter的安装

1)新建系统变量在变量名中输入:JMETER_HOME,

变量值中输入:D:\apache-jmeter-2.13,点击确定即可。

2)在环境变量CLASSPATH中添加

%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;

%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit- 1.2.jar;

3)在环境变量Path中添加%JMETER_HOME%\bin

4)cmd 输入 jmeter -v :没报错就行

3、Ant的安装

1)新建以下环境变量:ANT_HOME:D:\apache-ant-1.9.7,此为你的ANT安装路径;

2)在环境变量PATH的最后面添加一下内容:

;%ANT_HOME%\bin 注意前面的分号,如果PATH中最后没有分号";"的话要加上,有的话就可去除。

3)进入cmd命令窗口,在CMD窗口中输入ant -version 没报错就可以了

二、使用ant构建运行Jmeter,并且生成jtl、Html报告;

1、jmeter默认保存的是.csv格式的文件,所以我们先要设置一下bin/jmeter.properties文件内容,修改jmeter.properties文              件 jmeter.save.saveservice.output_format=xml;

2、将apache-jmeter-2.13\extras\ant-jmeter-1.1.1.jar拷贝到apache-ant-1.9.7\lib目录下;

3、在\apache-jmeter-2.13\extras目录下打开CMD,运行"ant.bat -file build.xml -Dtest=Test" . 查看此目录下是否出现                    Test.jtl、Test.html文件,若有,则构建成功。注意:Test.jmx是默认存在的Sample脚本文件。

我运行是出的问题:提示jtl文件不存在(***.Jtl does not exist)当时百度了好几篇文章都不知道是什么原因还是没能弄             好,后来换个思路查,查这个文件是什么jmeter中,原理是在控制台上运行jmeter脚本时产生的数据结果文件,这才没明             白过来。

接着我就再运行:ant.bat -file build.xml -Dtest=Test  ,看看有没有这个文件产生,果然没有,这下来找原因了,我就查               build.xml是怎么用的,下面我就解释下build.xml,不知是否对,修改之后应该没什么大得问题了

<?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="D:\apache-jmeter-4.0\extras" />  
    <!-- 需要改成自己本地的 Jmeter 目录-->    
    <property name="jmeter.home" value="D:\apache-jmeter-4.0" />  
    <!-- jmeter生成jtl格式的结果报告的路径-->   
    <property name="jmeter.result.jtl.dir" value="D:\apache-jmeter-4.0\report" />  
    <!-- jmeter生成html格式的结果报告的路径-->  
    <property name="jmeter.result.html.dir" value="D:\apache-jmeter-4.0\report" />  
    <!-- 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="D:\apache-jmeter-4.0\extras" includes="Test.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="${jmeter.home}/extras/jmeter-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://blog.csdn.net/qq_40447533/article/details/80831485

参考:https://blog.csdn.net/kaluman/article/details/74535495

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值