Gatling Scala调用random读取CSV行是否能保证数据唯一性
Gatling Scala CSV随机读取规则答疑
你使用的代码feed(csv("data.csv").random)的具体行为可以对应你的两个问题直接解答:
- 多线程运行时,各线程无法保证选取到互不重复的唯一行
Gatling的random feeder默认是全局共享的数据源,所有虚拟用户(对应运行线程)抽取数据时都是独立从全量CSV数据中随机取,没有全局去重逻辑,仅会因为CSV总行数远大于读取量降低重复概率,但无法完全避免重复。 - 同一个线程内多次调用random方法,也无法保证返回的行唯一
同个虚拟用户多次调用该feeder时,每次都是重新从全量CSV数据中随机抽取,不会记录该用户已经取过的历史数据,因此也存在重复抽取到同一行的可能。
如果你的测试场景必须要求取数唯一,可以改用queue、shuffle这类自带顺序遍历的feeder模式,或者自定义feeder添加去重校验逻辑。
内容的提问来源于stack exchange,提问作者Santhosh Kumar
相关产品推荐
相关产品推荐

