从Jmeter jtl日志文件计算吞吐量

从Jmeter jtl日志文件计算吞吐量,jmeter,Jmeter,我试图根据jtl日志中的一些属性,根据以下参数得出一个计算吞吐量(请求数/时间单位)的公式: 时间戳(ts) 时间(t) 请求总数 看看时间戳,我不完全确定它指的是发送请求的时间还是收到响应的时间(这里我的主要困惑点)。看看这些值,第一个选项似乎更有可能。假设这样,我得出以下结论: Throughput = (NumRequests / (max(ts + t) - min(ts)) ) * 1000 有谁能告诉我我说的对吗 更新(感谢@BlackGaff的回复) 关键是我需要在非gui环

我试图根据jtl日志中的一些属性,根据以下参数得出一个计算吞吐量(请求数/时间单位)的公式:

  • 时间戳(ts)
  • 时间(t)
  • 请求总数
看看时间戳,我不完全确定它指的是发送请求的时间还是收到响应的时间(这里我的主要困惑点)。看看这些值,第一个选项似乎更有可能。假设这样,我得出以下结论:

Throughput = (NumRequests / (max(ts + t) - min(ts)) ) * 1000
有谁能告诉我我说的对吗

更新(感谢@BlackGaff的回复)

关键是我需要在非gui环境中为一些自动化流程执行测试并收集结果,因此我无法真正使用聚合报告(除非有办法从命令行运行它)。使用max&min是尝试从一组请求(在同一测试中)中查找ts值。此外,如果我将采样器配置为具有不同于0的爬升周期(因此负载是分布的),那么我得到的ts的数字是不同的。是的,正如你之前提到的,我实际上是在寻找第一个样本的开始时间和最后一个样本的结束时间之间的差异。除此之外,我在jmeter.properties中发现了一个参数:

# Put the start time stamp in logs instead of the end
#sampleresult.timestamp.start=true
因此,根据这个参数,我似乎也应该更改计算以获得开始和结束时间

注意:我很想知道如何根据jtl文件计算这个值,但如果有人需要从命令行获取这些数字,请尝试添加“Generate Summary Report”侦听器,在jmeter日志中,您将在执行结束时获得一行类似于以下内容的代码:

2011/03/10 22:31:42 INFO  - jmeter.reporters.Summariser: Generate Summary Results =   200 in   9.8s =   20.5/s Avg:    95 Min:    75 Max:   315 Err:     0 (0.00%)

在Jmeter的聚合报告中打开JTL日志是否更容易,它将为您计算吞吐量,然后将其保存回去

但是,在这个问题上

目前,您的公式具有时间/请求单位。如果需要请求/时间,则公式应为:

Throughput = (NumRequests / (max(ts + t) - min(ts) ) ) * 1000
我不完全清楚为什么要使用max和min,因为您只提供一个值,而这些函数从一个集合返回max/min。假设TS是相同的值,使用EXCEL,您将得到:

Throughput = (NumRequests/t*1000)
我相信您真正想要的是第一个样本的开始时间和最后一个样本的结束时间之间的差异)

根据术语表:

吞吐量计算如下: 请求/时间单位。时间到了 从第一个月开始计算 采样到最后一个采样的末尾。 这包括两个时间间隔 样品,就像它应该的那样 表示服务器上的负载。这个 公式为:吞吐量=(数量) 请求)/(总时间)

给出最后的公式:

endTime = lastSampleStartTime + lastSampleLoadTime
startTime = firstSampleStartTime
converstion = unit time conversion value

Throughput = Numrequests / ((endTime - startTime)*conversion)
关键是我需要执行测试并将结果收集到 一个非gui环境,用于一些自动化流程,所以我不能 使用聚合报告(除非有办法从 命令行)

有。您可以使用JMeter插件项目中的CMD工具在CSV中生成聚合报告


假设您要计算20个线程的吞吐量。以下是要遵循的步骤:

  • 清理jtl文件,只保留20个线程的剩余条目。使用20个线程调用保存此文件
  • 使用以下命令从时间戳获取小时-分钟-秒

    awk -F"[, .]" '{print $2}' summary.jtl > tps1
    
  • 运行以下命令以获得吞吐量/秒

    sort tps1 | uniq -c  > tps2