聚合报告
1、90%百分位值为230ms,在发送100笔请求过程中,聚合报告会实时给请求耗时进行由小到大行排序,排序后的第90个请求耗时为230ms,也就是说前90笔请求中耗时最长的是230ms(其余90%百分位,95%百分位道理类似就不占篇赘述了),聚合报告平均值要与百分位值结合来看。
2、经常有的同学直接把聚合报告中的吞吐量当作TPS来看,这种做法是相当不严谨的。那么聚合报告中的吞吐量什么情况下可以看成TPS?从严格意义来讲就是交易成功率为100%;还有一种情况是:交易失败率在你可以接受的范围内(对当前测试整体结果影响不大,到了可以忽略的程度)。
jmeter生成HTML性能测试报告
性能测试工具Jmeter由于其体积小、使用方便、学习成本低等原因,在现在的性能测试过程中,使用率越来越高,但其本身也有一定的缺点,比如提供的测试结果可视化做的很一般。不过从3.0版本开始,jmeter引入了Dashboard Report模块,用于生成HTML类型的可视化图形报告(3.0版本的Dashboard Report模块会中文乱码,因此建议使用3.0以上的版本)。
一、生成HTML测试报告的两种方式
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目录下,输入如下命令:
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报告的目录
我本地Windows环境执行截图如下:
PS:(linux系统和windows系统命令一样)需要注意的是,生成的.jtl文件路径下,不能存在同名的.jtl文件,否则会执行失败。
执行完毕后,用浏览器打开生成的文件目录下的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、柱状响应时间分布图:展示落在各个平均响应时间区间的请求数情况
二、图表信息详解
测试报告分为两部分,Dashboard和Charts,下面分开解析。
1、Dashboard(概览仪表盘)
①、Test and Report informations
②、APDEX (应用性能指标)
关于APDEX的相关信息,请参考这里:应用性能指标;英文原文,参考这里:Apdex-Wikipedia
③、Requests Summary
2、Charts(详细信息图表)
PS:由于详细信息图表有点多,这里我挑几个性能测试过程中比较关键的图表解析!
Over Time
①、Response Times Over Time(脚本运行期间的响应时间变化趋势图)
说明:可以根据响应时间和变化和TPS以及模拟的并发数变化,判断性能拐点的范围。
②、
③、Bytes Throughput Over Time(脚本运行期间的吞吐量变化趋势图)
说明:在容量规划、可用性测试和大文件上传下载场景中,吞吐量是很重要的一个监控和分析指标。
④、
Throughput
①、Transactions Per Second(每秒事务数)
说明:每秒事务数,即TPS,是性能测试中很重要的一个指标,它是用来衡量系统处理能力的一个重要指标。
Response Times
①、 Response Time Percentiles(响应时间百分比分布曲线图)
说明:即响应时间在某个范围内的请求在所有请求数中所占的比率,相比于平均响应时间,这个值更适合用来衡量系统的稳定性。
②、
以上内容,即为jmeter生成HTML格式测试报告的方法以及报告内容解析,个人觉得这个图表可以进行再次开发,变得更灵活和易用。。。