转载于金阳光测试
聚合报告:
【聚合报告是什么】
这里的聚合,就是一组数据的集合,集合的什么数据呢,接口、请求、事务等的各种性能统计指标,比如做接口功能测试的时候,你需要查看接口的响应时间、是否成功、请求报文字节数、响应报文字节数等。如果是模拟大量用户的多线程接口测试,就是性能测试或压力测试了,我们会关注相应接口的最快响应时间、最慢响应时间、平均响应时间、排在中间的响应时间、90%的用户请求响应时间是否集中在1秒内、成功率/错误率是多少、服务器一秒钟能处理多少个订单、服务器一秒钟的吞吐量(接受的报文字节数、返回的报文字节数)是多少等等。既然接口测试或者接口性能测试有这么多关注有价值的指标,那我们就来一探究竟吧(注意注意,如果你把这些指标学会了,下次换了一个性能工具,关注的依然是这些指标,到时候你会有似曾相识的感觉,这就是我想教给你的,学知识,学的是原理哈,不是硬生生的工具哦)
【示例截图】
【13个指标说明】
上面是我在项目中进行虚拟卡账户系统的相关接口请求,在Aggregate Report(聚合报告)中,每个接口请求会显示独立的一行数据,每行有13个字段,含义分别如下:
1、 Label:请求名或者请求标签,每个JMeter 的组件(例如 HTTP Request)都有一个 “名称” 属性,这里显示的就是“名称”属性的值
2、 #Samples:表示你这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里显示就是100了
3、 Average:平均响应时间,默认情况下是单个 Request 的平均响应时间,当使用了Transaction Controller 时,也可以以Transaction 为单位显示平均响应时间
4、 Median:中位数,也就是所有请求响应时间中排在中间的那个响应时间点,也就是50% Line,请参考90% Line解释
5、 90% Line:
90%用户请求响应时间,如果把某次任务的所有请求的响应时间按从小到大排序,它是指排在90%处那个点的请求的响应时间,也就是说有90%的请求的响应时间小于等于这个响应时间。后面的50/60/70/80/90/95/99 % Line 也是类似的含义。
为什么有90%响应时间?这跟我们高中数学里的统计学和正态分布有点关系哈,统计这个东西,是对所有数据进行抽样检查,抽样数据越多结果越准确,抽样点分布越均匀抽样数据质量越高,结果越精确。所以在统计的时候,需要排除一些异常的数据,去除一些偶发性或者垃圾数据对整体样本结果导致的不准确。不同的n%数据,是为了让我们更好地去分析响应时间的分布及变化趋势,用于判断系统的处理性能和稳定性。
举个例子:某个接口请求了1000次,800个请求点都是1秒,100个为0.8秒,50个为20秒,50个为300秒。对于这一组数据,平均响应时间为:2.48秒,最小响应时间为0.8秒,最大响应时间为300秒,90%响应时间为1秒,95%响应时间为20秒,99%响应时间为300秒,为什么有这么多不同的指标点,说白了就是为了从不同的角度和数据维度去分析问题,排除一些异常统计点对整个抽样数据造成的影响,导致统计结果不准确。
6、 95% Line:95%用户请求响应时间,请参考90% Line解释
7、 99% Line:99%用户请求响应时间,请参考90% Line解释
8、 Min:最小响应时间,所有请求样本中的最小响应时间
9、 Max:最大响应时间,所有请求样本中的最大响应时间
10、Error%:本次测试中“出现错误的请求数/请求的总数”百分比值
11、Throughput:吞吐量,就是服务器在一定时间范围内处理的请求数。在本报告中它的含义其实其实是吞吐率,表示每秒完成的请求数(Request per Second),此指标代表服务器的处理能力,比如2016年支付宝峰值处理量达到12万笔/秒。
12、Received KB/sec:每秒从服务器端接收到的数据量
13、Sent KB/sec:每秒从客户端发送到服务器端的数据量
备注:只讲干货,将知识的本质和原理辅以例子,让你学起来知其然并且知其所以然,让你一次的学习解决一类知识点!让我们一起学习并快乐着。如果觉得好,请动动手指转发吧,做一个知识的传播者,share knowledge with the world!