0

我有一种情况,如果控制器中有两个 http 采样器

当 if 条件为 true 时,它​​只运行第一个 HTTP 采样器。它不执行 HTTP 采样器2。

as example:- 
if-controller ( condition true, none of the check-box got checked)
  ++HTTP sampler1
  ++HTTP sampler2 

输出:- 只有 HTTP sampler1 运行。即使采样器 1 结果是通过状态,它也永远不会执行采样器 2

我知道我可以将它分成两个可以正常工作的 if 控制器。但我不希望那样。因为如果我说要基于 if-controller 执行 5 个 HTTP 采样器,那么我不应该将其拆分为 5 个 if-controller,每个 if-controller 都嵌入了单独的 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 

有没有办法可以将所有 HTTP 采样器放在 IF 控制器下并执行。我尝试使用简单的控制器,但没有运气。

4

2 回答 2

0

这是我的愚蠢错误:-)。我在 for 控制器中添加了 if 控制器来运行几个 http 采样器,然后从 for 循环中退出。但是,要退出 for 循环,我添加了 BSF 后处理器,这会导致问题,因为在 if 条件内运行第一个 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
于 2013-10-10T16:09:30.093 回答
0

如果 Controller 将运行其所有子采样器。您使用的是哪个版本的 JMeter?你确定他们不跑吗?向您展示测试计划和 2 个采样器配置。

我刚刚用2.9测试过,没问题。

您的 If Controller 条件似乎有问题

${reservationCode} != null && ${serviceId} != null && ${code} != null

应该:

"${reservationCode}" != "null" && "${serviceId}" != "null" && "${code}" != "null"

于 2013-10-02T16:41:48.783 回答