所以我在主样本上添加了一个响应断言,并应用于该样本和所有子样本。我声明它的响应代码很好,因此断言将失败响应代码,如4xx和5xx错误。
我很好奇,当我在我的加载脚本中创建一个新用户时,我将user_id存储在一个jmeter变量中(在jmeter中可用于整个线程/采样器/会话)...无论如何我可以输出该变量所有采样器请求的
我已经通过以下方式创建用户后立即为所有请求输出user_id:
log.info("user_id:"+ vars.get("user_id") ); //gotten via JSON Path PostProcessor earlier when creating User.
但我想为所有Response Assertion错误输出类似的东西:
log.info("Response Assertion failure for user_id:"+ vars.get("user_id") );
也许是'BeanShell后处理器'但是真的不知道如何将其挂钩到1响应断言中,检查整个线程组,这样只有在断言失败的情况下它才会动态输出user_id。
是否存在最糟糕的情况,我无法对线程组的“顶层”的所有请求执行此操作...但是我可能必须在每个请求上添加响应断言而且我只能以某种方式动态添加输出? (但如果有一种方法可以做到这一点,所有请求都会很酷/更好) 欢迎任何想法,谢谢!
答案 0 :(得分:1)
您可以使用以下代码添加Beanshell Listener以在采样器故障日志中打印内容:
if (!sampleResult.isSuccessful()) {
log.info("Response Assertion failure for user_id:"+ vars.get("user_id") );
}
其中sampleResult
是保持父前一个采样结果的SampleResult类实例的简写。有关所有可用的方法和字段,请参阅JavaDoc。
根据您放置Beanshell Listener的位置,其范围将有所不同。
查看How to Use BeanShell: JMeter's Favorite Built-in Component文章,了解有关在JMeter测试中使用Beanshell测试元素的更多信息。