JMeter流量控制

JMeter流量控制,jmeter,load-testing,Jmeter,Load Testing,有谁能推荐一种控制JMeter中请求流的好方法吗。以下是问题陈述: 测试计划: 交易控制员“主页” 请求1 请求2 请求3 事务控制器“新闻” 请求1 请求2 事务控制器“结果” 请求1 请求2 我需要的是创建控制器,它将执行以下操作: 1) 完成“主页”后,50%的用户将结束测试,20%的用户将进入“新闻”,30%的用户将进入“结果”。 2) 完成“新闻”后,80%将转到“结果”,20%将再次转到“新闻” 对我来说,可能的解决方案是创建复杂的“如果控制器”,检查如下内容: ra

有谁能推荐一种控制JMeter中请求流的好方法吗。以下是问题陈述:

测试计划:

  • 交易控制员“主页”
    • 请求1
    • 请求2
    • 请求3
  • 事务控制器“新闻”
    • 请求1
    • 请求2
  • 事务控制器“结果”
    • 请求1
    • 请求2
我需要的是创建控制器,它将执行以下操作: 1) 完成“主页”后,50%的用户将结束测试,20%的用户将进入“新闻”,30%的用户将进入“结果”。 2) 完成“新闻”后,80%将转到“结果”,20%将再次转到“新闻”

对我来说,可能的解决方案是创建复杂的“如果控制器”,检查如下内容:

random_value >= 50%
并运行所需的控制器

但这似乎有点棘手,可能有一个插件/步骤是专为这样的事情?或者我可以使用一些脚本来控制流,比如:

if(random_value >= 50%) {
   runner.runController("News") 
} else {
   runner.runController("Results") 
}

听起来您需要吞吐量控制器:
要结束测试,您可以使用测试动作采样器。

我还将开始使用吞吐量控制器。
以下结构应该非常接近您需要的行为。

  • 事务控制“主页”
  • 吞吐量控制结果(权重30)
    • 模块控制器“结果”
  • 吞吐量控制“否则”(重量20)
    • 简易控制器
      • 模块控制器“新闻”
      • 吞吐量控制“新闻2”(权重20)
        • 模块控制器“新闻”
      • 吞吐量控制“结果2”(重量80)
        • 模块控制器“结果”
  • 事务控制退出
请注意,此结构允许一些用户通过树的每一个叶子,因为每个吞吐量控制器都是独立于其他控制器进行评估的。


显然,我没有尝试过,但我认为这是一个经过合理努力的很好的近似值。

使用这种方法,测试不会只选择一种变体。它将以一定的概率执行每个步骤。如果有可能添加退出步骤,这将不是问题。但我不知道如何修改…更新到上一篇文章-我刚刚检查过,它似乎是一个模拟用户退出的解决方案(参见SampleResult.setStopThread示例)@abdgirk
是的,这就是我在解释中说的