我正在尝试使用 JMeter 测试我们的 webapp 的性能。登录过程包括一些在测试期间无法重现的外部依赖项,因此我编写了备用登录。由于这个备用登录请求不是正常工作流程的一部分,我想从 JMeter 结果中排除登录请求,因为与其他正常请求相比,响应时间相当长。
有没有办法只为一组请求收集结果,而忽略其余的?
我正在尝试使用 JMeter 测试我们的 webapp 的性能。登录过程包括一些在测试期间无法重现的外部依赖项,因此我编写了备用登录。由于这个备用登录请求不是正常工作流程的一部分,我想从 JMeter 结果中排除登录请求,因为与其他正常请求相比,响应时间相当长。
有没有办法只为一组请求收集结果,而忽略其余的?
据我所知,没有简单的排除方法。然而,通过改变你的结构,你可以得到你想要的。
听众调到所有儿童级别。因此,如果您将侦听器作为“测试计划”的直接子代,则所有线程组都将被侦听器抓取。如果您有多个线程组,并将侦听器放在线程组 A 中,它将不会从线程组 B 捕获结果。同样适用于简单控制器。
我建议采用以下结构:
Test Plan
- Thread Group
---- Simple Controller - Login ONLY
---- Simple Controller - Rest of Script
--------- Listener
从 JMeter 4.0 开始,可以添加SampleResult.setIgnore() 来告诉 JMeter 忽略侦听器的 SampleResult。
参考:https ://jmeter.apache.org/api/org/apache/jmeter/samplers/SampleResult.html#setIgnore--
SampleResult
对于 Beanshell、sampleResult
JS 和Groovy 的PS变量prev
,请参阅 jmeter.apache.org/usermanual/functions.html。