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

JMeter writing a variable to the log ONCE during a test fragment

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

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

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

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

BeanShell 后处理器

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 

等等...

我只想在日志中记录一次此消息。 我可以使用什么在我的测试片段中发送一条日志消息?

谢谢!

/J

post 处理器应该是需要 post 处理的 HTTP 请求的子元素。如果与 HTTP 请求处于同一级别,JMeter 假定所有 HTTP 请求都需要 post 处理并调用它。

如您所知,每个线程将单独执行整个线程组。所以,如果有 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