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。
我想遍历 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。