【发布时间】:2011-03-30 04:31:39
【问题描述】:
如何根据随机权重运行测试/控制器?例如,有两个测试,一个重量为 25%,另一个重量为 50%。 50 的人应该经常运行两倍。
也许吞吐量控制器以某种方式与随机混合?
【问题讨论】:
如何根据随机权重运行测试/控制器?例如,有两个测试,一个重量为 25%,另一个重量为 50%。 50 的人应该经常运行两倍。
也许吞吐量控制器以某种方式与随机混合?
【问题讨论】:
我认为您可以使用如下配置的吞吐量控制器:
吞吐量值是预先设置的,可以根据配置属性或在可接受的值范围内生成(在本例中为 0..100)。
【讨论】:
对于一些简单的权重,您可以使用开关控制器默认为第一个孩子这一事实来发挥您的优势。例如 50% 25% 25% 喜欢这样
Switch Controller - ${__Random(0,3)}
- Child 0 (and 3)
- Child 1
- Child 2
通过将 Random 和 Simple 控制器中的任务分组为子级,您可以更进一步。
【讨论】:
在这种情况下,您最好使用 2 个线程组。 首先进行设置以生成比第二个更多的请求。
PS。您可以使用吞吐量整形计时器来控制每个组的速率。
【讨论】:
我通过创建一个具有以下开关值的开关控制器来实现这一点:
${__javaScript( var s="001"; new Number(s.charAt( Math.floor(Math.random()*s.length) )) )}
javascript 从字符串s 中选择一个随机字符并将其转换为一个数字。所以在上面的例子中,选择 0 的频率是 1 的两倍,并且可以通过在字符串中添加/删除字符来改变权重。
我使用 String 而不是 Array 是因为我的 JMeter 版本使用的 javascript 版本似乎不支持数组文字,所以这使它不那么冗长。
【讨论】: