JMeter在测试片段期间将变量写入log ONCE

时间:2016-11-15 16:22:40

标签: performance jmeter load-testing

进行我们网站的负载测试。

我在主要测试计划中包含了几个测试片段。 在主测试计划中,我将参数设置为线程应该停留多长时间(暂停在不同的测试片段中),然后再继续。

我想向控制台写入我们正在等待的内容,但问题是我找不到在测试片段中登录控制台ONCE的方法。

这是我目前在片段中的内容:

BeanShell PostProcessor

log.info("### User is interacting with the GLASSES-page for: " + vars.get("glassesSpentTime") + "ms")

在控制台中,我会看到每个HTTP请求的日志消息:

jmeter.util.BeanShellTestElement: ### User is interacting with the GLASSES-page for: 37000ms 
jmeter.util.BeanShellTestElement: ### User is interacting with the GLASSES-page for: 37000ms 
jmeter.util.BeanShellTestElement: ### User is interacting with the GLASSES-page for: 37000ms 

等等......

我只想在log ONCE中显示此消息。 我可以使用什么来在我的测试片段中发送一条日志消息?

谢谢!

/ J

1 个答案:

答案 0 :(得分:2)

后处理器应该是HTTP请求的子元素,需要进行后期处理。如果在与HTTP请求相同的级别中,JMeter假定所有HTTP请求都需要后处理&调用它。

您可能知道,每个线程将分别执行整个线程组。因此,如果有3个用户,那么您将3个日志消息。为避免这种混淆,您可能需要添加

log.info("### User${__threadNum} - is interacting with the GLASSES-page for: " + vars.get("glassesSpentTime") + "ms")

您将获得此处显示的日志。

jmeter.util.BeanShellTestElement: ### User1 - is interacting with the GLASSES-page for: 37000ms  
jmeter.util.BeanShellTestElement: ### User2 - is interacting with the GLASSES-page for: 37000ms  
jmeter.util.BeanShellTestElement: ### User3 - is interacting with the GLASSES-page for: 37000ms