Gatling - UniformRandomSwitch 无法按预期工作

Gatling - UniformRandomSwitch doesn't work as expected

我想遍历 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 次迭代中,SearchProduct1 执行 8 次,SearchProduct2 执行 1 次(而 SearchProduct3 从不执行)。但是使用 uniformRandomSwitch 我不会强迫每个函数执行相同的时间。对吗?

我想你想要的是 roundRobinSwitch 指令。这将遍历每个链,移动到下一个链,然后在开始时重复,因为新的请求通过。

uniformRandomSwitch 的情况下,每条链都有 1/N 次被调用的机会。根据您的示例,只有经过多次迭代,调用次数才会收敛到 3/3/3。