我想从csv Logfile手动计算jmeter testplan的持续时间。我正在计算上一个时间戳 - 第一个时间戳,如果正在运行1个线程组,它看起来是正确的。对于超过1个线程组,采样器将是重复,我认为它不应该是计算持续时间的正确方法。我尝试使用事务控制器认为相应的时间戳将给我所有包含的样本的持续时间,但当我在日志文件中看到多个事务控制器条目时感到困惑不止一个线程组。我是性能测试和jmeter的新手。非常感谢。
答案 0 :(得分:0)
JMeter提供了保存测试开始时间戳的变量,它是${TESTSTART.MS}
您可以使用旨在运行测试后操作的tearDown Thread Group。在tearDown Thread Group下,您可以使用Beanshell Sampler将测试持续时间打印到 jmeter.log 文件,如下所示:
long start = Long.parseLong(vars.get("TESTSTART.MS"));
long end = System.currentTimeMillis();
log.info("Test duration: " + (end - start) / 1000 + " seconds");
在测试结束时,您应该看到类似的内容:
2015/06/17 22:20:15 INFO - jmeter.util.BeanShellTestElement: Test duration: 300 seconds
有关更多Beanshell脚本提示和技巧,请参阅How to use BeanShell: JMeter's favorite built-in component指南。
如果您只有结果文件,则使用Excel或Google表格等效的另一个选项打开.jtl结果文件,排序时间戳列(通常是第一行),从第一行/最后一行中减去第一个单元格/第一行值值 - 这样你就可以在几毫秒内获得测试持续时间。