zoukankan      html  css  js  c++  java
  • Jmeter输出完美报告

    做技术的就爱折腾, 看到哪里不够完美,就想把它改改, 使其顺眼.

    同样Jmeter输出的报告实在差强人意, 截图发给领导看不够美观, 缺少统计汇总, 有什么方法给对方一个地址就可以浏览报告? 答案是肯定的.

    我是mac机, windows一样可以实现, 环境变量设置略有不同, 其他大同小异.

    Ant安装配置

     1、从http://ant.apache.org 上下载tar.gz版ant

    2、使用cp复制到/usr下

    3、tar -vxzf apache-ant-1.9.0-bin.tar.gz  解压

    4、vi /etc/profile    // 配置环境变量(windows的配置更简单path里直接添加)

        #set Ant

        export ANT_HOME=/usr/apache-ant-1.9.0

        export PATH=$PATH:$ANT_HOME/bin

    window中设置ant环境变量:
    新建:ANT_HOME:E:Program Filesapache-ant-1.9.1  //路径和版本自己修改
    path 追加:%ANT_HOME%in

    5、source /etc/proifle   //配置立即生效

    6、ant -version   //测试ant是否生效

    很早之前就配置过ant, 就懒得再去下个新版本, 这里是1.9.0

    ant是一个非常成熟的工具, 存在时间久远, 后起之秀有Maven 还有gradle, 实用性可读性更加.

    Jmeter建议使用3.3 以上版本, 需要配合 jdk1.8使用, 3.1是jdk 1.7

    我的jmeter目录如下

    /Users/louiezhou/Downloads/download/apache-jmeter-3.1/bin

    在bin下创建一个目录

    将jmx文件(就是你的jmeter脚本文件)放在该目录下

    同时创建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 目录 -->

        <property name="jmeter.home" value="[修改路径]/apache-jmeter-3.1/"/>

    <!-- 生成html和jtl的路径地址,我这里直接放在tomcat发布目录下 -->

        <property name="jmeter.result.html.dir" value="[html报告输出路径]"/>

        <property name="jmeter.result.jtl.dir" value="[jtl输出路径]"/>

     <!-- 生成的报告的前缀-->

        <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"/>

        <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="[修改自己jmeter所在目录]apache-jmeter-3.1/bin/demo" includes="*.jmx"/>

                 <property name="jmeter.save.saveservice.output_format" value="xml"/>

            </jmeter>

        </target>

         <path id="xslt.classpath">

            <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>

    1. 将JMeter所在目录下extras子目录里的ant-JMeter-1.1.1.jar复制到Ant所在目录lib子目录之下,这样Ant运行时才能找到"org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"这个类,从而成功触发JMeter脚本.

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

    进入jmeter的bin自建目录下:

    /Users/louiezhou/Downloads/download/apache-jmeter-3.1/bin/demo

    遇到的坑:

    XML 文档结构必须从头至尾包含在同一个实体内

    解决方法:xml文件中标签不完整,没有结束标签

    报如下错误

    taskdef class org.programmerplanet.ant.taskdefs.jmeter.JMeterTask cannot be found

    生成报告完美:

    这里面还有个问题 ,就是执行多次report会被覆盖掉, 思路是使用时间戳的方式区分不同report, 扩展了还可以和Jenkins集成. 赶快动手来实践吧, 看百遍不如自己做一遍.

    今日推荐阅读文章精选推荐

    JMeter数据库操作

    Jmeter接口测试-正则表达式

    JMeter中文返回乱码

    Jmeter接口测试-参数化

    JMeter接口测试-基础

    测试-感想

    咨询工作加微信

    扫描二维码

    欢迎自荐和推荐, 需要的微信推送简历!

    请猛戳下面二维码了解更多

  • 相关阅读:
    P4549 【模板】裴蜀定理
    POJ1606 Jugs
    2. 数据库连接池规范
    14. BootStrap * 组件
    BootStarpt
    13. Flex 弹性布局2 BootStrap
    12. Flex 弹性布局 BootStrap
    CSS3
    21. Servlet3.0 / 3.1 文件上传 Plus
    20. Servlet3.0 新特性
  • 原文地址:https://www.cnblogs.com/louiezhou/p/10287693.html
Copyright © 2011-2022 走看看