JMeter 5.1.1 CSV Data Set Config
场景一:线程组中设置:单线程执行1次
如上图所示:变量名称为空时JMeter默认把new 1.txt的文件首行作为变量名
再如:此时A会被作为变量名,第一次取值为B
场景二:线程组中设置:单线程执行1次
当变量名称不为空时,忽略首行为false,JMeter会吧参数化文件(new 1.txt)文件首行作为变量值进行读取。
再如:
当变量名称不为空时,忽略首行为true,JMeter会把参数化文件(new1.txt)文件首行忽略,从文件第二行开始读取变量值。
场景三: 线程组中设置:单线程执行5次
执行结果如下:
结果说明:当遇到文件结束符再循环设置为true,遇到文件结束符停止线程为false时,如果线程执行的次数超过文件行数,读完参数化文件最后一行后再次开始从文件首行进行读取,如过设置了忽略首行则从文件第二行开始读取变量值。
将遇到文件结束符再循环设置为false,遇到文件结束符停止线程为false时,执行结果如下图:
结果说明:当前线程读取完参数化文件全部行数后,由于设置了不循环读取参数化文件,当前线程仍是活跃的,本次JMeter会给当前变量一个<EOF>值(也可以理解成标志位,表示线程不循环读取文件行)。
遇到文件结束符再循环设置为false,遇到文件结束符停止线程为true时,执行结果如下图:
结果说明:将遇到文件结束符停止线程为true时,当前线程读取完参数化文件全部行数后,JMeter不会给本次变量值,直接停止线程,即使设置的执行次数超过参数化文件行数,多余的执行次数不会被执行。
场景四:线程共享模式
这里新手可能比较难理解,希望看完能对读者有所帮助。
- Sharing mode:All threads(所有现场) 适用:多线程组供用CSV Data Set Config
脚本结构如下(为了方便理解:Thread Group1与Thread Group2设置为均是单线程执行1次。):
执行结果如下:
结果说明:Thread Group1 读取的变量值为A; Thread Group2 读取的变量值为B ,Thread Group2在Thread Group1基础上又继续读取了文件的第二行(B)
如果将Thread Group1 Thread Group2 设置成2线程,循环次数为1,结果会是什么。。。?
- Sharing mode:Current thread group(当前线程组)
结果说明:Thread Group1 与 Thread Group2 均从文件首行(应该是第二行,次处设置了忽略首行)开始读取。可以理解成,你读你的,我读我的,互不影响。
- Sharing mode:Current thread (当前线程)
执行结果如下图:
结果说明:每个线程独享参数化文件,以线程为单位读取文件,线程之间互不影响。