JMeter流量控制

时间:2013-10-09 13:44:21

标签: jmeter load-testing

任何人都可以提出一个很好的方法来控制JMeter中的请求流。这是问题陈述:

测试计划:

  • 交易控制器'主页'
    • 要求1
    • request 2
    • 要求3
  • 交易控制器'新闻'
    • 要求1
    • request 2
  • 交易控制器'结果'
    • 要求1
    • request 2

我需要的是创建控制器,它将执行以下操作: 1)'主页'完成后,50%的用户将结束测试,20%将进入'新闻',30%将进入'结果'。 2)'新闻'完成后,80%将进入'结果',20%将再次进入'新闻'。

对我来说,可能的解决方案是创建一个复杂的'If controllers'来检查类似的东西:

random_value >= 50%

并运行所需的控制器

但这似乎有点棘手,可能有一个专为此类设计的插件/步骤?或者我可以使用一些脚本进行流控制,例如:

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

2 个答案:

答案 0 :(得分:0)

听起来你需要吞吐量控制器:http://jmeter.apache.org/usermanual/component_reference.html#Throughput_Controller 要结束测试,您可以使用测试操作采样器。

答案 1 :(得分:0)

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

  • 交易控制'主页'
  • 吞吐量Ctrl'结果(重量30)
    • 模块控制器'结果'
  • 吞吐量Ctrl'否则'(重量20)
    • 简单控制器
      • 模块控制器'新闻'
      • 吞吐量Ctrl'News2'(重量20)
        • 模块控制器'新闻'
      • 吞吐量控制'结果2'(重量80)
        • 模块控制器'结果'
  • 事务管理员退出

请注意,此结构允许某些用户流过树的每个离开,因为每个吞吐量控制器都是独立评估的。

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