Расчет продолжительности времени в jmeter - PullRequest
0 голосов
/ 07 мая 2020

Я хотел бы рассчитать временную длительность начального и конечного запросов для каждой итерации. Я могу получить полное время выполнения теста, используя сценарий beanshell , как показано ниже:

long start = Long.parseLong(vars.get("TESTSTART.MS"))

long end = System.currentTimeMillis();

log.info("Test duration: " + (end - start) / 1000 + " seconds");

Но я хочу рассчитать длительность времени для каждой итерации.

1 Ответ

0 голосов
/ 07 мая 2020

Прежде всего не используйте Beanshell, начиная с JMeter 3.1 вы должны скорее писать сценарии в Groovy.

Нет предопределенных переменных , которые отражают начало и конец итерации, вам нужно будет вычислить их самостоятельно, т.е.

  1. Добавить JSR223 Sampler в начале группы потоков и поместите следующий код в область Script:

    SampleResult.setIgnore()
    vars.putObject('iterationStart', System.currentTimeMillis())
    
  2. Аналогичным образом добавьте JSR223 Sampler в конец группы потоков и используйте следующий код:

    SampleResult.setIgnore()
    log.info('Iteration: ' + vars.get('__jm__' + ctx.getThreadGroup().getName() + '__idx') + ' took ' + groovy.time.TimeCategory.minus(new Date(System.currentTimeMillis()), new Date(vars.getObject('iterationStart'))))
    

Где:

Дополнительная информация: Top 8 JMeter Java Классы, которые следует использовать с Groovy

...