Jmeter 5.3 不同循环读取不同CSV及避免数据重复的实现方法
JMeter 5.3 跨循环不重复读取测试数据方案
按循环读取不同CSV的实现方式(可落地)
- 提前拆分测试数据,按循环序号命名CSV文件,例如
data_1.csv、data_2.csv,保证每份文件内的数据无重复 - 获取当前循环序号:JMeter 5.3 已支持循环控制器内置索引变量
__jm__<你的循环控制器名称>__idx,索引默认从0开始,可通过${__intSum(${__jm__<你的循环控制器名称>__idx},1,)}计算得到1开头的循环序号,存入自定义变量loop_num - 修改CSV数据文件配置的文件路径为动态路径,例如
/你的数据路径/data_${loop_num}.csv,即可实现每轮循环自动读取对应CSV文件,天然避免跨循环数据重复。
不拆分CSV的跨循环不重复读取方案
如果不想拆分多份CSV文件,可选择以下任意一种配置:
方案1:使用CSV数据集配置
- 将CSV数据集配置放在线程组层级,不要放在循环控制器内部,避免每轮循环重置读取指针
- 调整CSV数据集配置参数:
- 共享模式:
所有线程 - 遇到文件结束符再次循环:
False - 遇到文件结束符停止线程:
False
- 共享模式:
- 配置完成后,JMeter会全程记录CSV读取进度,跨循环也会延续上一轮的读取位置继续取数,不会从头重读。
方案2:沿用HttpSimpleTableServer
- 测试启动前将两轮循环需要的所有测试数据合并为同一份CSV文件,一次性导入HttpSimpleTableServer
- 服务全程保持运行状态,
keep参数保持为false即可,服务会按请求顺序返回未读取过的数据,自动规避跨循环重复问题。
内容的提问来源于stack exchange,提问作者user3310115
相关产品推荐
相关产品推荐

