Функция процентиля в Jmeter

#performance #jmeter #performance-testing #load-testing #percentile

Вопрос:

Я знаю, что в Jmeter есть встроенная функция, которая даст вам время ответа на запрос образца. Но мне интересно, есть ли что-то подобное для получения разных значений процентиля, таких как 95-й, 99,99-й и т. Д., Либо в JSR223, либо в образце Beanshell.

Я знаю, что можно получить значение в HTML-отчете, но я хочу знать, можете ли вы получить его с помощью какого-либо встроенного метода?

Спасибо

Ответ №1:

«Встроенных» методов не существует, если вам нужна эта информация во время выполнения JMeter, вы можете настроить JMeter на немедленную запись промежуточных результатов в файл результатов .jtl, установив следующее свойство JMeter:

 jmeter.save.saveservice.autoflush=true
 

Затем вы можете прочитать файл .jtl в Groovy и выполнить расчет в соответствии с вашими требованиями, что-то вроде:

 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))
 

даст вам 99 процентилей в jmeter.файл журнала.