加特林-UniformRandomSwitch无法正常工作

时间:2018-06-19 13:25:09

标签: scala csv gatling

我想遍历一个csv文件的所有项目,对于每个项目,我想统一分发请求,以便所有SearchProduct(SearchProduct1,SearchProduct2和SearchProduct3)函数都被调用相同的时间。

    val products= csv("products.csv").records

    val start= exec(repeat(products.size, "n"){
        feed(products.queue)
        .uniformRandomSwitch(
            exec(searchProduct1), 
            exec(searchProduct2), 
            exec(searchProduct3)
        )
    })

我希望如果我有9种产品,则将SearchProduct1函数调用3次,将SearchProduct2函数调用3次,将SearchProduct3函数也称为3次。

但是统计数据多次显示,函数SearchProduct3被调用5次,而SearchProduct2和SearchProduct1被调用2次。我做错了吗?我应该在uniformRandomSwitch内重复吗?

所以我了解uniformRandomSwitch,执行这三个功能之一的概率是相同的。有可能在9次迭代中,执行8次SearchProduct1和1次SearchProduct2(而SearchProduct3从不执行)。但是使用uniformRandomSwitch并不会迫使每个函数执行相同的时间。对吧?

1 个答案:

答案 0 :(得分:1)

我认为您想要的是roundRobinSwitch指令。这将遍历每个链,直到下一个新链,然后在新请求开始时在开头重复。

uniformRandomSwitch中,每个链都有1/N的几率被调用。给定您的示例,只有经过多次迭代,调用数量才会收敛到3/3/3。