我有一个场景,if控制器里面有两个http采样器
当if条件为真时,它只运行第一个HTTP sampler。它不执行HTTP sampler2。
as example:-
if-controller ( condition true, none of the check-box got checked)
++HTTP sampler1
++HTTP sampler2
输出: - 仅运行HTTP sampler1。即使采样器1的结果是通过状态
,它也永远不会执行采样器2我知道我可以把它分成两个if-controllers,它们可以正常工作。但我不希望这样。因为如果我说基于if-controller执行5个HTTP采样器,那么我就不应该将它分成5个if-controllers,每个if-controllers都嵌入了单独的HTTP采样器。
if-controller ( condition true, none of the checkbox got checked)
++HTTP sampler1
if-controller ( condition true, none of the checkbox got checked)
++HTTP sampler2
有没有办法可以在IF控制器下运行所有HTTP采样器并执行。我尝试使用简单的控制器,但没有运气。
答案 0 :(得分:0)
如果Controller将运行其所有子进样器。 您使用的是哪个版本的JMeter?你确定他们不跑吗? 向您展示测试计划和2个采样器配置。
我刚用2.9测试过,没问题。
您的If控制器条件
似乎存在问题$ {reservationCode}!= null&& $ {serviceId}!= null&& $ {code}!= null
应该是:
" $ {reservationCode}" !=" null" &安培;&安培; " $ {服务Id}" !=" null" &安培;&安培; " $ {代码}" !=" null"
答案 1 :(得分:0)
这是我的愚蠢错误:-)。我添加了if控制器内部控制器来运行几个http采样器然后退出for循环。然而,为了退出for循环,我添加了BSF后处理器,这导致了问题,因为在条件运行第一个http采样器后,然后BSF postprocssor被调用并且它从for循环退出。所以它没有在if循环中执行第二个http采样器。我将bsf后处理器更改为bsf采样器,它工作正常。
for loop
if condition
http sampler 1
http sampler 2
BSF post processor for exit from for loop
已更改为
for loop
if condition
http sampler 1
http sampler 2
BSF Sampler for exit from for loop