jmeter一个线程组下多个csv的应用


一个线程组下,多个CSV文件的总结:说明:1csv中的值为a:5;2csv中的值为b:3 1、CSV在不同的循环控制器下,按照顺序执行(即1csv-1取样器-2csv-2取样器);如1取样器中的${b}获取不到值,因为在执行1取样器时,2csv还没执行,所以获取不到b的值; 2、当1csv对应的循环控制器设置为1,2csv对应的循环控制器设置为2时,执行逻辑为: 执行第一个循环控制器: 读取1csv中的a=5 ,执行1取样器,结果为1:5___${b} 执行第二个循环控制器: 第一次循环:读取2csv中的b=3,执行2取样器,结果为2:5___3(因为a的值没有重新读,也没有变化,所以还是取1取样器中a的值) 第二次循环:读取2csv中的b=(因为csv设置的是遇到文件结束符再次循环为false),执行2取样器, 结果为2:5___eof   csv设置的遇到文件结束符停止线程-true,当超出csv数据行数的时候,线程自动停止;如csv有5行数据,循环6次,则第6次时,线程自动停止; csv设置的遇到文件结束符停止线程-false,循环控制器会一致循环,永远在循环控制器里面执行; 所以我们试算脚本中写的循环永远是不对的,会导致后面的试算无法执行;   csv设置的遇到文件结束符再次循环-true,当读取到csv最后一行后,从头开始读csv文件; csv设置的遇到文件结束符再次循环-false,当读取到csv最后一行后,读取的值为eof;     两个CSV变量名不一样时,b=3 ,a=5; 两个CSV变量名一样时,取其中一个的值   说明:3csv都是同一个文件名,变量,设置等; 如下图,第一个循环控制器循环2次,第二个循环控制器循环8次; 最终结果是2取样器打印的值是接着1取样器之后的值;     说明:3dsv与4csv是不同的文件名,其他变量什么的都一样; 如下图,第一个循环控制器循环2次,第二个循环控制器循环8次; 最终结果是2取样器打印的值是4csv第一行开始的值;     总结:如果不同的循环控制器的csv文件是一模一样的,jmeter会把这两个文件当成一个文件来运行;