JMeter5-测试报告

一、聚合报告

1、90%百分位值为230ms,在发送100笔请求过程中,聚合报告会实时给请求耗时进行由小到大行排序,排序后的第90个请求耗时为230ms,也就是说前90笔请求中耗时最长的是230ms(其余90%百分位,95%百分位道理类似就不占篇赘述了),聚合报告平均值要与百分位值结合来看。

2、经常有的同学直接把聚合报告中的吞吐量当作TPS来看,这种做法是相当不严谨的。那么聚合报告中的吞吐量什么情况下可以看成TPS?从严格意义来讲就是交易成功率为100%;还有一种情况是:交易失败率在你可以接受的范围内(对当前测试整体结果影响不大,到了可以忽略的程度)。

 

 二、html报告

Jmeter提供的测试结果可视化做的很一般。不过从3.0版本开始,jmeter引入了Dashboard Report模块,用于生成HTML类型的可视化图形报告

(3.0版本的Dashboard Report模块会中文乱码,因此建议使用3.0以上的版本)。

1、利用已有.jtl文件生成报告

之前的博客介绍过如何在linux环境运行jmeter并生成报告,如果已经有经过测试生成的.jtl文件,可以利用该文件直接生成HTML可视化测试报告。

进入jmeter的bin目录下,输入如下命令:

jmeter -g test.jtl -o /path
# -g:后跟test.jtl文件所在的路径
# -o:后跟生成的HTML文件存放的路径

PS:如果是在Windows环境命令行运行,必须指定生成的HTML文件存放文件夹,否则会报错;如果是linux环境,如指定路径下不存在该文件夹,会生成对应的文件夹存放报告文件!

2、无.jtl文件生成测试报告

如果还未生成.jtl文件,则可以通过如下命令,一次性完成测试执行和生成HTML可视化报告的操作,进入jmeter的bin目录下,输入如下命令(linux系统和windows系统命令一样)需要注意的是,生成的.jtl文件路径下,不能存在同名的.jtl文件,否则会执行失败。):

jmeter -n -t test.jmx -l test.jtl -e -o /path
# -n:以非GUI形式运行Jmeter 
# -t:source.jmx 脚本路径 
# -l:result.jtl 运行结果保存路径(.jtl),此文件必须不存在 
# -e:在脚本运行结束后生成html报告 
# -o:用于存放html报告的目录

执行完毕后,用浏览器打开生成的文件目录下的index文件,效果展示如下:

 

其默认提供的度量维度包括:

1、APDEX(Application Performance Index)指数
2、聚合报告:类似于UI上的  「Aggregate Report」
3、Errors报告:展示不同错误类型的数量以及百分比
4、响应时间变化曲线: 展示平均响应时间随时间变化情况,类似于JMeter Plugins在UI上的*jp@gc - Response Times Over Time*
5、数据吞吐量时间曲线:展示每秒数据吞吐量随时间变化的情况,类似于JMeter Plugins在UI上的*jp@gc - Bytes Throughput Over Time*
6、Latency time变化曲线:展示Latency time随时间变化的情况,类似于JMeter Plugins在UI上的*jp@gc - Response Latencies Over Time*
7、每秒点击数曲线:类似于JMeter Plugins在UI上的*jp@gc - Hits per Second*
8、HTTP状态码时间分布曲线:展示响应状态码随时间的分布情况,类似于JMeter Plugins在UI上的*jp@gc - Response Codes per Second*
9、事务吞吐量时间曲线(TPS):展示每秒处理的事务数随时间变化情况,类似于JMeter Plugins在UI上的*jp@gc - Transactions per Second*
10、平均响应时间与每秒请求数的关系图:展示平均响应时间与每秒请求数(可以理解为QPS)的关系
11、Latency time与每秒请求数的关系图:展示Latency time与每秒请求数的关系
12、响应时间百分位图:响应时间的百分位分布图
13、活动线程数变化曲线:展示测试过程中活动线程数随时间变化情况
14、平均响应时间与线程数的关系图:展示平均响应时间与线程数的关系,类似于JMeter Plugins在UI上的*jp@gc - Response Times vs Threads*
15、柱状响应时间分布图:展示落在各个平均响应时间区间的请求数情况

3、图表信息详解

测试报告分为两部分,Dashboard和Charts,下面分开解析。

1、Dashboard(概览仪表盘)

①、Test and Report informations

②、APDEX (应用性能指标)

关于APDEX的相关信息,请参考这里:应用性能指标;英文原文,参考这里:Apdex-Wikipedia

③、Requests Summary

 

2、Charts(详细信息图表)

PS:由于详细信息图表有点多,这里我挑几个性能测试过程中比较关键的图表解析!

Over Time

①、Response Times Over Time(脚本运行期间的响应时间变化趋势图)

说明:可以根据响应时间和变化和TPS以及模拟的并发数变化,判断性能拐点的范围。

②、 Response Time Percentiles Over Time (successful responses)

说明:脚本运行期间成功的请求响应时间百分比分布图,可以理解为聚合报告里面不同%的数据,图形化展示的结果。

③、Bytes Throughput Over Time(脚本运行期间的吞吐量变化趋势图)

说明:在容量规划、可用性测试和大文件上传下载场景中,吞吐量是很重要的一个监控和分析指标。

④、 Latencies Over Time(脚本运行期间的响应延时变化趋势图)

说明:在高并发场景或者强业务强数据一致性场景,延时是个很严重的影响因素。

 

Throughput

、Transactions Per Second(每秒事务数)

说明:每秒事务数,即TPS,是性能测试中很重要的一个指标,它是用来衡量系统处理能力的一个重要指标。

 

Response Times

、 Response Time Percentiles(响应时间百分比分布曲线图)

说明:即响应时间在某个范围内的请求在所有请求数中所占的比率,相比于平均响应时间,这个值更适合用来衡量系统的稳定性。

②、Time Vs Threads(平均响应时间和线程数的对应变化曲线)

说明:可以通过这个对应的变化曲线来作为确定性能拐点的一个参考值。

 

 

三、模板报告(Jmeter接口测试报告)

Jmeter是压力测试、接口测试工具,Ant是基于Java的构建工具,具有跨平台的作用,jenkins是持续集成工具。将这三者结合起来可以搭建一套接口测试的持续构建环境。

1、安装JDK,配置java环境变量(这里用的是 jdk1.8)

2、安装Jmeter,配置jmeter环境变量 Path        F:\jmeter

3、安装 ANT ,下载地址 http://ant.apache.org/bindownload.cgi,下载后解压到指定位置即可,然后配置ANT环境变量(window中)

     ANT_HOME F:\apache-Ant
    CLASSPATH %ANT_HOME%\lib
    Path %ANT_HOME%\bin
验证安装结果,命令行输入ant -v ,出现版本信息则安装成功

4.创建jmeter接口脚本:(可以使用jmeter录制一个脚本,需要jmx脚本文件)

5、ANT中配置Jmeter   

  5.1 将jmeter extras目录下的ant-jmeter-1.1.1.jar 文件拷贝到ant安装目录下的lib文件夹中

  5.2 配置jmeter.properties

在jmeter安装目录bin目录下jmeter.properties文件中修改jmeter.save.saveservice.output_format=csv 为 jmeter.save.saveservice.output_format=xml,并去掉前面的注释符号#

设置测试输出报告要输出的内容,在jmeter.properties中,将如下内容前面的注释符号#去掉,这里全部设置成true。这样执行完脚本后就会保存这些结果到.jtl文件里面,重启jmeter生效。

  5.3创建build.xml,拷贝下面的内容到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 目录-->
    <property name="jmeter.home" value="D:\0Test\1XN\jmeter-5.1.1" />
    <!-- jmeter生成jtl格式的结果报告的路径-->
    <property name="jmeter.result.jtl.dir" value="D:\0Test\1XN\jmeter-5.1.1\report\jtl" />
    <!-- jmeter生成html格式的结果报告的路径-->
    <property name="jmeter.result.html.dir" value="D:\0Test\1XN\jmeter-5.1.1\report\html" />
    <!-- 生成的报告的前缀-->
    <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" />
    
    <property name="ReportName" value="TestReport" />
    <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}${time}.html" />
        
    <property name="ReportNameSum" value="TestReportSum" />
   <property name="jmeter.result.htmlNameSum" value="${jmeter.result.html.dir}/${ReportNameSum}${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" />
            <!-- 声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本-->
            <!-- 再增加<jmeter></jmeter>标签可同时执行多个目录下的脚本-->
        <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
            <testplans dir="D:\0Test\1XN\jmeter-5.1.1\test" includes="*.jmx" />
        </jmeter>
    </target>

    <target name="report">
    <!-- 再增加<xslt></xslt>标签可以同指定不同的模板生成多个报告 -->
        <xslt in="${jmeter.result.jtlName}"
              out="${jmeter.result.htmlName}"
              style="${jmeter.home}/extras/jmeter.results.shanhe.me.xsl" />
        <xslt in="${jmeter.result.jtlName}"
              out="${jmeter.result.htmlNameSum}"
              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>

build.xml需按照实际进行如下修改,生成报告路径,ResultReport可以不用创建,如果创建了必须保证文件夹中为空。

6 验证配置,执行构建测试

    6.1进入到脚本保存目录在地址栏输入cmd进入命令行,输入ant run ,执行测试,看到build successful 则说明构建测试成功:

    6.2 进入保存报告的路径下查看测试结果报告,按build.xml文件中设置的测试报告地址找到html版测试报告,打开看看:测试结果展现了用例数、成功率、用例执行时间等结果参数:

7  测试报告优化:更换模板

用jmeter自带的测试报告得到的测试报告信息并不是很全,可以下载该优化模板 jmeter.results.shanhe.me.xsl,将其拷贝到jmeter的extras目录中,设置build文件的报告模板为优化后的模板:jmeter.results.shanhe.me.xsl。

按步骤6的方式再次用ant构建测试,查看优化后的测试报告

 

posted @ 2016-10-31 22:43  liangww  阅读(1376)  评论(0编辑  收藏  举报