Jmeter-Ant 生成测试报告

Posted Skyyj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jmeter-Ant 生成测试报告相关的知识,希望对你有一定的参考价值。

一、安装jmeter  

 

 

配置环境变量

JMETER_HOME

D:\\SProgram\\jmeter

CLASSPATH

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

二、安装Ant


配置环境变量

ANT_HOME

D:\\SProgram\\Ant

Path

%ANT_HOME%\\bin;

1、将JMeter所在目录下extras子目录里的ant-JMeter-1.1.1.jar复制到Ant所在目录lib子目录之下,

这样Ant运行时才能找到"org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"这个类,从而成功触发JMeter脚本 

    

2、jmeter默认保存的是.csv格式的文件,所以我们先要设置一下bin/jmeter.properties文件内容,保存

    jmeter.save.saveservice.output_format=xml

目录结构如下

 

 build.xml 文件内容如下:

<?xml version="1.0" encoding="utf-8"?>
<project name="JmeterTest" default="all" basedir=".">
    <tstamp>
        <format property="time" pattern="yyyyMMddhhmm" />
    </tstamp>
    <!-- 需要改成自己本地的 Jmeter 目录-->
    <property name="jmeter.home" value="D:\\SProgram\\jmeter" />
    <!-- jmeter生成jtl格式的结果报告的路径-->
    <property name="jmeter.result.jtl.dir" value="D:\\SProgram\\JmeterSpace\\ResultLog\\jtl" />
    <!-- jmeter生成html格式的结果报告的路径-->
    <property name="jmeter.result.html.dir" value="D:\\SProgram\\JmeterSpace\\ResultLog\\html" />
    <!-- 生成的报告的前缀 -->
    <property name="ReportName" value="TestReport" />
    <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" />
    <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}${time}.html" />
    <!-- 接收测试报告的邮箱 -->
    <property name="mail_to" value="yxxxn@xxxz.cn" />
    <!-- 电脑地址 -->
    <property name="ComputerName" value="Yyj" />
    <target name="all">
        <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="D:\\SProgram\\JmeterSpace\\Script" includes="*.jmx" />
        </jmeter>
    </target>
    <target name="report">
        <xslt in="${jmeter.result.jtlName}" out="${jmeter.result.htmlName}" style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl" />
        <!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 -->
        <copy todir="${jmeter.result.html.dir}">
            <fileset dir="${jmeter.home}/extras">
                <include name="collapse.png" />
                <include name="expand.png" />
            </fileset>
        </copy>
    </target>
    <!-- 发送邮件 -->
</project>

 

3、执行ant 

 

cd 切换到build.xml文件路径下,执行ant命令

 

 

 4、打开生成的html测试报告

 可以发现 min time 为NaN

 

 

 5、解决 该问题的方法

解决方案,要下载一个xalan.jar,serializer.jar包放到项目中即可解决这个问题

将这两个jar包入ant的lib包中,输入ant查看运行结果,使用浏览器查看,OK,显示了!

 

 

三、安装jenkins 

 具体见有道笔记 : Jmeter-Ant-jenkins 生成测试报告

 

以上是关于Jmeter-Ant 生成测试报告的主要内容,如果未能解决你的问题,请参考以下文章

20194626 自动生成四则运算题第一版报告

测试报告生成

使用HTMLTestRunner生成测试报告并发送邮件,但每次都是等到执行完邮件发送的代码才能生成测试报告?

Karma +Jasmine+ require JS进行单元测试并生成测试报告代码覆盖率报告

Python + HTMLTestRunner + smtplib 完成测试报告生成及发送测试报告邮件

为啥下面这段python+htmltestrunner的自动化代码执行后,生成的测试报告有问题(见图片)