Jmeter中的百分位数功能

Posted

技术标签:

【中文标题】Jmeter中的百分位数功能【英文标题】:Percentile function in Jmeter 【发布时间】:2021-08-20 13:33:39 【问题描述】:

我知道 Jmeter 中有一个内置函数,可以为您提供示例请求的响应时间。但我想知道在 JSR223 或 Beanshell 采样器中是否有类似的方法可以获取不同的百分位值,例如第 95、99.99 等。

我知道在 html 报告中获取值是可能的,但我想知道您是否可以从某些内置方法中获取它?

谢谢

【问题讨论】:

【参考方案1】:

没有“内置”方法,如果您在 JMeter 运行时需要此信息,您可以配置 JMeter 立即将中间结果写入 .jtl results file by setting the following JMeter property:

jmeter.save.saveservice.autoflush=true

然后您可以在 Groovy 中读取 .jtl 文件并根据您的要求执行计算,例如:

def lines = new File('result.jtl').readLines()
def linesWithoutHeader = lines.subList(1, lines.size())

def elapsed = []

linesWithoutHeader.each  line ->
    elapsed.add(line.split(',')[1] as long)


elapsed = elapsed.sort()
def index = Math.ceil(99 / 100.0 * elapsed.size()) as int
log.info('99 percentile: ' + elapsed.get(index - 1))

将在jmeter.log file 中为您提供第 99 个百分位。

【讨论】:

以上是关于Jmeter中的百分位数功能的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript中的分位数/百分点/百分位数/逆累积分布函数

在 SQL 中分析并形成分位数并计算落在各个分位数中的值的百分比

如何在 jmeter 聚合报告命令行中打印 95 和 99 百分位数?

Pandas .. 分位数函数是不是需要排序数据来计算百分位数?

如何在 JavaScript(或 PHP)中获取数组的中位数和四分位数/百分位数?

可靠地检索分位数函数的倒数