如何在IF控制器内运行多个HTTP采样器

时间:2013-10-02 14:43:59

标签: jmeter

我有一个场景,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采样器并执行。我尝试使用简单的控制器,但没有运气。

2 个答案:

答案 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
相关问题