在进行软件性能测试时,使用Apache JMeter等工具能够生成详尽的测试报告和日志。这些数据对于评估应用程序的性能至关重要。本文将针对JMeter生成的压测日志数据进行详细解析,并解释特定字段的意义。
日志数据摘要:
以下是整个JMeter压测日志的数据:
Creating summariser <summary>
Created the tree successfully using script/XXX查询.jmx
Starting standalone test @ Sun Jul 24 02:49:48 CST 2022 (1658602188821)
Waiting for possible Shutdown/StopTestNow/HeapDump/ThreadDump message on port 4445
summary + 416 in 00:00:11 = 38.7/s Avg: 2204 Min: 557 Max: 3968 Err: 0 (0.00%) Active: 100 Started: 100 Finished: 0
summary + 1482 in 00:00:30 = 49.4/s Avg: 2047 Min: 1017 Max: 4384 Err: 0 (0.00%) Active: 100 Started: 100 Finished: 0
summary = 1898 in 00:00:41 = 46.6/s Avg: 2081 Min: 557 Max: 4384 Err: 0 (0.00%)
summary + 1649 in 00:00:30 = 55.0/s Avg: 1822 Min: 1011 Max: 3517 Err: 0 (0.00%) Active: 100 Started: 100 Finished: 0
summary = 3547 in 00:01:11 = 50.1/s Avg: 1961 Min: 557 Max: 4384 Err: 0 (0.00%)
summary + 1725 in 00:00:30 = 57.5/s Avg: 1735 Min: 781 Max: 2819 Err: 0 (0.00%) Active: 100 Started: 100 Finished: 0
summary = 5272 in 00:01:41 = 52.3/s Avg: 1887 Min: 557 Max: 4384 Err: 0 (0.00%)
summary + 1726 in 00:00:30 = 57.5/s Avg: 1734 Min: 1093 Max: 2525 Err: 0 (0.00%) Active: 100 Started: 100 Finished: 0
summary = 6998 in 00:02:11 = 53.5/s Avg: 1849 Min: 557 Max: 4384 Err: 0 (0.00%)
summary + 1730 in 00:00:30 = 57.6/s Avg: 1734 Min: 977 Max: 2745 Err: 0 (0.00%) Active: 100 Started: 100 Finished: 0
summary = 8728 in 00:02:41 = 54.3/s Avg: 1826 Min: 557 Max: 4384 Err: 0 (0.00%)
summary + 1725 in 00:00:30 = 57.5/s Avg: 1736 Min: 1092 Max: 2483 Err: 0 (0.00%) Active: 100 Started: 100 Finished: 0
summary = 10453 in 00:03:11 = 54.8/s Avg: 1811 Min: 557 Max: 4384 Err: 0 (0.00%)
summary + 1737 in 00:00:30 = 57.8/s Avg: 1731 Min: 848 Max: 2447 Err: 0 (0.00%) Active: 100 Started: 100 Finished: 0
summary = 12190 in 00:03:41 = 55.2/s Avg: 1800 Min: 557 Max: 4384 Err: 0 (0.00%)
summary + 1722 in 00:00:30 = 57.5/s Avg: 1735 Min: 783 Max: 2429 Err: 0 (0.00%) Active: 100 Started: 100 Finished: 0
summary = 13912 in 00:04:11 = 55.5/s Avg: 1792 Min: 557 Max: 4384 Err: 0 (0.00%)
summary + 1731 in 00:00:30 = 57.6/s Avg: 1735 Min: 1051 Max: 2471 Err: 0 (0.00%) Active: 100 Started: 100 Finished: 0
summary = 15643 in 00:04:41 = 55.7/s Avg: 1786 Min: 557 Max: 4384 Err: 0 (0.00%)
summary + 1217 in 00:00:21 = 58.9/s Avg: 1729 Min: 1052 Max: 2408 Err: 0 (0.00%) Active: 0 Started: 100 Finished: 100
summary = 16860 in 00:05:01 = 55.9/s Avg: 1782 Min: 557 Max: 4384 Err: 0 (0.00%)
Tidying up ... @ Sun Jul 24 02:54:50 CST 2022 (1658602490697)
... end of run
关键指标解释:
首先,让我们关注日志中的几个关键指标:
- summary: 这个前缀表示接下来的行是关于测试摘要的信息。
- in: 表示在某个时间段内完成的请求数量。
- 吞吐量: 以每秒处理的请求数(Requests per second, RPS)的形式呈现,用于评估系统的性能和处理能力。
- Avg: 平均响应时间(单位通常是毫秒)。
- Min 和 Max: 分别代表最小和最大响应时间。
- Err: 错误率,即失败的请求占总请求的比例。
- Active、Started 和 Finished: 这三个参数描述了虚拟用户的活跃状态。
以日志中的一条记录为例:
summary + 1731 in 00:00:30 = 57.6/s Avg: 1735 Min: 1051 Max: 2471 Err: 0 (0.00%) Active: 100 Started: 100 Finished: 0
这条记录表明,在过去的30秒内,有1731个请求被成功处理,平均每秒处理约57.6个请求。每个请求的平均响应时间是1735毫秒,最短的响应时间是1051毫秒,最长的响应时间是2471毫秒。在这期间没有发生任何错误,错误率为0%。
现在,我们来分析一下summary =的日志信息。这个部分通常出现在两个连续的summary +之间,用于汇总之前一段时间内的测试结果。例如,第一行的summary = 1898 in 00:00:41 = 46.6/s Avg: 2081 Min: 557 Max: 4384 Err: 0 (0.00%)表示在前面的41秒内,共完成了1898个请求,平均每秒处理约46.6个请求,每个请求的平均响应时间是2081毫秒,最短的响应时间是557毫秒,最长的响应时间是4384毫秒,错误率为0%
接下来,我们来看“Active: 100 Started: 100 Finished: 0”的含义:
- Active: 当前活跃的并发用户数。在这个例子中,有100个虚拟用户正在执行任务。
- Started: 启动的用户总数。这里也是100,意味着所有配置的用户都已经启动并开始执行测试。
- Finished: 完成测试的用户数。这里的0表示还没有用户完成他们的测试任务。
通过观察这三个值的变化,我们可以了解并发用户的行为模式。例如,如果Finished的值开始增加,那么说明一些用户已经完成了他们的测试任务。
结论:
总结来说,JMeter的压测日志提供了丰富的信息,帮助我们理解应用程序在不同负载下的表现。通过对这些数据的分析,我们能够识别瓶颈、优化性能,并最终确保应用在高并发环境下依然稳定可靠。