jmeter聚合报告如何添加单位_jmeter学习指南之聚合报告

本文详细介绍了JMeter的聚合报告,包括Label、#Samples、Average、Median、90%Line等关键指标的含义。重点解释了90%Line实际代表的是90%的请求响应时间小于该值,并通过实例说明了百分位数在性能测试分析中的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上一篇文章中我们讲了Jmeter结果分析最常用的一个Listener查看结果树,

今天接着讲另一个最常用的listener--聚合报告Aggregate Report。

27fb5e7f8397fb73373a47651a7a6e06.png

我们先来看看聚合报告中的主要名称的含意:

Label:每个请求的名称

#Samples:各请求发出的数量

Average:平均响应时间(单位:毫秒)。默认是单个Request的平均响应时间,当使用了Transaction Controller时,也可以以Transaction为单位显示平均响应时间

Median:中位数,具体后面讲

90%Line:后面讲

95%Line:后面讲

99%Line:后面讲

Min:最小响应时间

Max:最大响应时间

Error%:请求的错误率 = 错误请求的数量/请求的总数

Throughput:吞吐量。默认情况下表示每秒完成的请求数,一般认为它为TPS。(注意单位的变化,如上图中,当TPS很低时,jmeter中默认会统计成每分钟的值,这时我们需要换算成以秒为单位)

KB/sec:每秒从服务器端接收到的数据量。

90%Line

在这里我觉得有必要说一下对 90%Line 的理解:

很多人都理解为:90%用户的平均响应时间。(我之前也一直这样认为),但是后来才发现我错了。

那看看JMeter 官网是怎么说的?

90% Line - 90% of the samples took no more than this time. The remaining samples at least as long as this.

“ 90% 的请求耗时没有超过这个时间,剩余的请求耗时至少在这个时间之上。”也就是说90%的请求耗时都在这个时间之下。

这里涉及到一个数学中的概念:百分位数

百分位数:

统计学术语,如果将一组数据从大到小排序,并计算相应的累计百分位,则某一百分位所对应数据的值就称为这一百分位的百分位数。可表示为:一组n个观测值按数值大小排列,处于p%位置的值称第p百分位数。

百分位通常用第几百分位来表示,如第五百分位,它表示在所有测量数据中,测量值的累计频次达5%。以身高为例,身高分布的第五百分位表示有5%的人的身高小于此测量值,95%的身高大于此测量值。

百分位数则是对应于百分位的实际数值。

百分位数是用于衡量数据的位置的量度,但它所衡量的,不一定是中心位置。百分位数提供了有关各数据项如何在最小值与最大值之间分布的信息。对于无大量重复的数据,第p百分位数将它分为两个部分。大约有p%的数据项的值比第p百分位数小;而大约有(100-p)%的数据项的值比第p百分位数大。对第p百分位数,严格的定义如下:

第p百分位数是这样一个值,它使得至少有p%的数据项小于或等于这个值,且至少有(100-p)%的数据项大于或等于这个值。

高等院校的入学考试成绩经常以百分位数的形式报告。比如,假设某个考生在入学考试中的语文部分的原始分数为54分。相对于参加同一考试的其他学生来说,他的成绩如何并不容易知道。但是如果原始分数54分恰好对应的是第70百分位数,我们就能知道大约70%的学生的考分比他低,而约30%的学生考分比他高。

再举个假子:

有10个数:

1、2、3、4、5、6、7、8、9、10    按由小到大将其排列。

求它的第90%百分位,也就是第9个数刚好是9 ,那么他的90%Line 就是9 。

另一组数:

2、2.1、2.5、3、3.4、3.4、4、4、4、4、5、5、5、5.9、 5.91、6.8、8、12、24、24.1   按由小到大将其排列。

求它的第90%百分位,也就是第18个数,是12 ,那么他的90%Line 就是12。

那么把百分位数用在性能测试中有什么意义呢?

它可以使用我们的分析结果更准确!

因为在评估一次测试的结果时,仅仅有平均响应时间是不够的。假如有一次测试,总共有100个请求被响应,其中最小响应时间为0.02秒,最大响应时间为110秒,平均事务响应时间为4.7秒,你会不会想到最小和最大响应时间如此大的偏差?是否会导致平均值本身并不可信?

如果我们把每个请求的响应时间用excel统计出来,会发现那个最大值的出现几率只不过是千分之一甚至万分之一,剩下99%的用户请求的响应时间都是在性能需求所定义的范围之内的;所以为了更准确的衡量整体请求的耗时情况,除了平均响应时间之外,还要有90%Line、95%Line、99%Line来辅助统计。

总结一下,聚合报告中的百分位数的含意:

Median:中位数,50%用户的响应时间在小于该值,注意它与average平均响应时间的区别;

90%Line:90%用户的响应时间小于该值

95%Line:95%用户的响应时间小于该值

99%Line:99%用户的响应时间小于该值

现在你明白了吗?

### JMeter聚合报告的生成、解读与配置 #### 生成JMeter聚合报告 为了生成JMeter聚合报告,可以采用命令行方式来启动测试计划并自动生成HTML格式的结果报告。具体操作如下: 通过命令行选项`-n`启用非GUI模式运行JMeter脚本;利用`-t`指明待执行的具体`.jmx`文件位置;借助`-l`设定结果数据存储路径以便后续分析之用;如果希望在测试完成后立刻获得一份基于这些结果构建而成的汇总报表,则需追加参数`-e`以及定义输出目录给定`-o`。 示例命令展示如何创建一个包含聚合报告在内的完整性能测试流程[^1]: ```bash jmeter -n -t /path/to/testplan.jmx -l /path/to/resultsfile.jtl -e -o /path/to/reportdir/ ``` 此过程会依据指定的测试方案自动完成整个负载试验,并最终产出易于理解的数据可视化图表集合于所选文件夹之中。 #### 解读JMeter聚合报告中的关键指标 对于聚合报告而言,其中一项重要度量标准即为吞吐率(Throughput),它反映了单位时间内传输的数据总量大小。特别地,在某些资料里提到过KB/sec这一表达形式用来表示每秒钟能够处理多少千字节数量级的信息流量[^2]。尽管确切算法尚未完全公开透明化,但通常情况下该数值越大说明系统的响应效率越高或者说承载能力越强。 除了上述提及的内容外,还有其他几个核心要素值得留意: - **平均时间 (Average)**: 所有样本请求耗时总和除以其数量得到的结果。 - **最小/最大时间 (Min/Max)**: 记录下最短成功交互所需时间和最长等待周期。 - **错误百分比 (%) Errors**: 统计失败次数占全部尝试的比例关系。 - **90% Line**: 排序后的延迟分布曲线中位于第90个百分点处对应的响应时刻长度。 以上各项统计均有助于全面评估被测对象的表现特征及其稳定性状况。 #### 配置JMeter以优化聚合报告的质量 为了让生成的聚合报告更加贴合实际需求,可以通过调整JMeter内部设置实现更精细控制。例如修改线程组属性里的循环次数、并发数等参数模拟不同场景下的访问压力;另外也可以针对监听器组件做个性化定制比如开启或关闭特定类型的采样记录从而影响到最终呈现效果。 此外值得注意的是,当涉及到大规模分布式环境部署时,合理规划节点间通信机制同样至关重要。确保各个slave机器上的资源分配均衡并且网络连接稳定可靠,这样才能保证收集回来的数据具备足够的代表性进而提高整体结论可信度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值