如何从 JMeter 摘要中排除预热时间?
How to exclude warmup time from JMeter summary?
我有一个简单的 JMeter 吞吐量测试,它产生 20 个线程,每个线程对数据库执行一个简单的 SQL 查询。我设置了 10 秒的加速时间和 70 秒的总测试时间。
当我在非 GUI 模式下执行测试时,我看到以下摘要输出:
summary + 1 in 0.1s = 7.4/s Avg: 135 Min: 135 Max: 135 Err: 0 (0.00%) Active: 1 Started: 1 Finished: 0
summary + 137501 in 28.5s = 4831.0/s Avg: 3 Min: 1 Max: 614 Err: 0 (0.00%) Active: 20 Started: 20 Finished: 0
summary = 137502 in 29s = 4796.9/s Avg: 3 Min: 1 Max: 614 Err: 0 (0.00%)
summary + 171000 in 30s = 5703.8/s Avg: 3 Min: 1 Max: 519 Err: 0 (0.00%) Active: 20 Started: 20 Finished: 0
summary = 308502 in 59s = 5260.8/s Avg: 3 Min: 1 Max: 614 Err: 0 (0.00%)
summary + 61016 in 11.5s = 5309.0/s Avg: 3 Min: 1 Max: 518 Err: 0 (0.00%) Active: 0 Started: 20 Finished: 20
summary = 369518 in 70.1s = 5268.9/s Avg: 3 Min: 1 Max: 614 Err: 0 (0.00%)
如您所见,吞吐量在前 30 秒内较低,但随后会回升。我知道这可能是由于线程启动和其他系统组件预热所致。
有什么方法可以从最终计算中排除 "X" 秒的起始数字。我使用了一些自定义性能测试,我总是排除前 "X" 秒,直到系统在测量输出之前达到稳定状态。
无论如何我可以在 JMeter 中做到这一点吗?
可以使用jmeter插件生成图表
并填写开始偏移字段。
阅读此使用世代:
选项 1:
JMeter 结果文件基本上是具有以下格式的 CSV 文件:
timeStamp,elapsed,label,responseCode,responseMessage,threadName,dataType,success,bytes,grpThreads,allThreads,Latency
1440671556283,1799,HTTP Request,200,OK,Thread Group 1-1,text,true,1591,1,1,1798
其中第一列是样本开始时间(自 Unix Time 以来的毫秒数)
如果您需要省略前 30 秒,请将 30000 添加到第一个采样器时间戳,找到最近的行并删除从第 1 行到第 1 行的所有行。
选项 2:
您可以使用 Synchronizing Timer 来确保负载从一开始就以 20 个线程开始。
我有一个简单的 JMeter 吞吐量测试,它产生 20 个线程,每个线程对数据库执行一个简单的 SQL 查询。我设置了 10 秒的加速时间和 70 秒的总测试时间。
当我在非 GUI 模式下执行测试时,我看到以下摘要输出:
summary + 1 in 0.1s = 7.4/s Avg: 135 Min: 135 Max: 135 Err: 0 (0.00%) Active: 1 Started: 1 Finished: 0
summary + 137501 in 28.5s = 4831.0/s Avg: 3 Min: 1 Max: 614 Err: 0 (0.00%) Active: 20 Started: 20 Finished: 0
summary = 137502 in 29s = 4796.9/s Avg: 3 Min: 1 Max: 614 Err: 0 (0.00%)
summary + 171000 in 30s = 5703.8/s Avg: 3 Min: 1 Max: 519 Err: 0 (0.00%) Active: 20 Started: 20 Finished: 0
summary = 308502 in 59s = 5260.8/s Avg: 3 Min: 1 Max: 614 Err: 0 (0.00%)
summary + 61016 in 11.5s = 5309.0/s Avg: 3 Min: 1 Max: 518 Err: 0 (0.00%) Active: 0 Started: 20 Finished: 20
summary = 369518 in 70.1s = 5268.9/s Avg: 3 Min: 1 Max: 614 Err: 0 (0.00%)
如您所见,吞吐量在前 30 秒内较低,但随后会回升。我知道这可能是由于线程启动和其他系统组件预热所致。
有什么方法可以从最终计算中排除 "X" 秒的起始数字。我使用了一些自定义性能测试,我总是排除前 "X" 秒,直到系统在测量输出之前达到稳定状态。
无论如何我可以在 JMeter 中做到这一点吗?
可以使用jmeter插件生成图表
并填写开始偏移字段。
阅读此使用世代:
选项 1:
JMeter 结果文件基本上是具有以下格式的 CSV 文件:
timeStamp,elapsed,label,responseCode,responseMessage,threadName,dataType,success,bytes,grpThreads,allThreads,Latency
1440671556283,1799,HTTP Request,200,OK,Thread Group 1-1,text,true,1591,1,1,1798
其中第一列是样本开始时间(自 Unix Time 以来的毫秒数)
如果您需要省略前 30 秒,请将 30000 添加到第一个采样器时间戳,找到最近的行并删除从第 1 行到第 1 行的所有行。
选项 2:
您可以使用 Synchronizing Timer 来确保负载从一开始就以 20 个线程开始。