Misty rain
Jmeter性能测试-最终篇:把jtl转换成html报告,报告解读
最终篇:把jtl转换成html报告,在进阶篇中,我们已经拿到了最终的jtl文件,为了让其他人观看,不可能让他人下载jmeter来看吧,所以我们本章将jtl转换成html。
准备文件:jtl文件
执行命令:
cd 到jmeter/bin文件夹
jmeter -g **.jtl -e -o html
**代表的是路径,html是文件夹(注意:文件夹要为空)。
当然还有别的方式,但是都不需要,会最常用的一种就行了。
HTML报告解读:
1、Dashboard(概述面板)
(1)Test and Report informations(测试和报告信息)
Source file ---- 生成报告的源文件
Start Time ---- 开始时间
End Time ---- 结束时间
(2)APDEX (应用性能指标),计算每笔交易APDEX的容忍和满足阈值基于可配置的值,范围在 0-1 之间,1表示达到所有用户均满意。
Apdex:应用程序性能指标(0~1),1表示所有用户请求均满意,反之0则表示均不满意
T(Toleration threshold):可接受(容忍或满意)阈值,即用户可接受的响应时间
F(Frustration threshold):不可接受(失败)阈值,即用户不可接受响应时间
Lable:采样器名称
T和F两值可以在配置文件中找到,具体参见以下第三条 配置测试报告。
(3)Requests Summary(请求总结),成功与失败的请求占比,KO指失败率,OK指成功率
(4)statistics(数据分析),类似于jmeter聚合报告
Label:Sample采样器名称
Samples:总共发送请求数(线程数 * 循环次数)
KO:失败次数
Error%:请求失败率
Average:平均响应时间
Min:最小响应时间
Max:最大响应时间
90%Line:90%线,90%用户响应不超过该时间
95%Line:95%线,95%用户响应不超过该时间
99%Line:99%线,99%用户响应不超过该时间
Throughput:吞吐量,一般情况下可看做每秒完成请求数(和QPS类似)
Received:每秒从服务器端接收到的数据量
Sent:每秒从客户端发送的请求的数量
(5)Errors(错误情况)
主要就是统计请求出现错误
(6)Top 5 Errors by sampler(采样器的5大错误)
主要是统计TOP5发生错误的采样器信息,这里如果全部通过,就不会有统计。
2、Chart(图表)
包括Over Time(时间变化) 、Throughput(吞吐量) 、Response Times(响应时间)
(1)Over Time
1)Response Times Over Time(响应时间变化曲线),类似于JMeter Plugins上的jp@gc - Response Times Over Time
Response Times Over Time,即响应时间随时间变化趋势。由于应用需要初始化建立连接以及CPU、内存等分配都会消耗资源,随着系统趋于稳定,响应时间也会趋于稳定。
2)Response Time Percentiles Over Time (successful responses) (成功响应时间百分比),类似于jmeter聚合报告中的Min、Max、90%、95%、99%
3)Active Threads Over Time(活动线程时间变化曲线图),随着时间变化,每个时间节点上的活动线程数
活跃线程变化趋势,即并发用户数趋势。相当于我们模拟的并发用户发出请求随着时间变化的趋势。
4)Bytes Throughput Over Time(字节吞吐量时间变化曲线图),蓝色为每秒发送字节数,黄色为每秒接收字节数
5)Latencies Over Time(延迟时间曲线图),记录的是客户端发送请求完成后,服务器端返回请求之前的这段时间,在高并发场景或者业务强数据一致性场景,延时是个很严重的影响因素
6)Connect Time Over Time(连接时间变化曲线图),随着时间变化,每个时间节点花费在连接上的平均时间
(2)Throughput(吞吐量)
包括如下图内容:
1)Hits Per Second(每秒点击率),类似于JMeter Plugins上的jp@gc - Hits per Second
也叫每秒请求数
2)Codes Per Second(每秒状态码数量)
即每秒响应状态码数量,这里主要是对200响应成功的状态码进行记录统计。
3)Transactions Per Second(每秒事务数),即TPS,是性能测试中很重要的一个指标,它是用来衡量系统处理能力的一个重要指标,类似于JMeter Plugins上的jp@gc - Transactions per Second
如果没有开启事务,那么TPS也可看做QPS
4)Total Transactions Per Second(每秒总事务数)
5)Response Time Vs Request(响应时间点请求的成功或失败数)
即响应时间和请求数对比关系,如果请求数量太小就只有一些散点。
6)Latency Vs Request(延迟时间点请求的成功或失败数)
(3)Response Times(响应时间)
包括如下图所示
1)Response Time Percentiles(响应时间百分比)
响应时间百分比,通过之前压测数据中所有响应时间统计分析所展示的。可以更详细看出自己所需要了解的百分线用户的响应时间。
2)Response Time Overview(响应时间概述)
响应时间概述,仔细看下面这种图不难发现,横坐标所绘制的区间和我们最开始看到的APDEX应用程序性能指数中划分的区间一致。
3)Time Vs Threads(平均响应时间和线程数的对应变化曲线)
即活跃线程数和响应时间对比关系,这块如果请求数据较少的话就会造成结果不是十分明显。
4)Response Time Distribution(响应时间分布)
配置测试报告
配置可容忍阈值:
打开jmeter/bin/reportgenerator.properties
定义采样点粒度(overall_granularity):
通过我们测试过程中,需要更小的粒度,如2秒,也可以在文档末性加上jmeter.reportgenerator.overall_granularity=2000;
注意:基本配置都是以jmeter.reportgenerator.为前缀的
定义报告的标题(report_title)
定义Apdex评估中满意的阈值(单位ms)(apdex_satisfied_threshold)
定义Apdex评估中可容忍的阈值(apdex_tolerated_threshold)
555
555
1
1
1
response.write(9071268*9163691)
'+response.write(9071268*9163691)+'
"+response.write(9071268*9163691)+"
1
1
1
(select(0)from(select(sleep(15)))v)/*'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"*/
-5 OR 246=(SELECT 246 FROM PG_SLEEP(15))--
0Rj9O5Gs')) OR 570=(SELECT 570 FROM PG_SLEEP(15))--
if(now()=sysdate(),sleep(15),0)
-1); waitfor delay '0:0:15' --
-1)) OR 58=(SELECT 58 FROM PG_SLEEP(15))--
1*DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15)
1*DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15)