2015-04-23 247 views
4

我有几个HTTP请求采样器,我只想在满足某些条件时执行。我所做的是增加了一个BeanShell的预处理器的HTTP请求取样用下面的代码JMeter在特定条件下启用/禁用HTTP请求采样器

if (${getTeamName}.equals("Test Team") == true) 
{ 
    HTTPSampler.setEnabled(false); 
} 

如果getTeamName的值是测试团队然后我想禁用HTTP请求取样器,因为它不必须执行。然而,它看起来目前不起作用。

有没有人知道我在这里做错了什么,或者我应该做什么的建议?

回答

4

JMeter Performance and Tuning Tips指南访问变量:

但是,当然,确保你的脚本是必要的和有效的书面,不要OVERSCRIPT

为什么不只是使用If Controller喜欢:

  • 如果控制器,条件:"${getTeamName}" != "Test Team"
    • HTTP请求取样

如果${getTeamName}Test Team子采样器(S)将不会被执行。

+0

是的,如果控制器会更好和可读。但是,'sampler.setEnabled(false)'似乎不起作用。我从来没有尝试过。这种方法的用途是什么? – vins

+0

谢谢,这个作品很棒。它只需执行HTTP请求采样器就可以执行它。 –

1

在使用BeanShell中,使用vars.get("VARNAME")

if (vars.get("getTeamName").equals("Test Team") == true) 
{ 
    sampler.setEnabled(false); 
} 
+0

我已经试过这个,但是当名称等于“Test Team”时,采样器仍然不会被禁用。我也尝试设置getTeamName作为属性,然后使用if($ {__ property(getTeamName)}。equals(“Test Team”)== true) –

+1

@YvesMertens,对不起,我不知道你到底想要做什么。按照DmitriT的说法,我会按照您的要求与“If Controller”一起去。 – vins

+0

没问题,可能我的问题没有写得很清楚。感谢您的尝试!是的,我试过DmitriT的建议,它的工作原理。 –

相关问题