一. CSV数据文件设置
CSV数据集配置用于从文件中读取行,并将它们拆分为变量。它比CSVRead ()和_ StringFromFile ()函数更容易使用。
它非常适合处理大量变量,对于使用“随机”和唯一值进行测试也很有用。
默认情况下,文件只打开一次,每个线程将使用文件中的不同行。但是,行传递给线程的顺序取决于它们执行的顺序。
线程组->add Config Element (配置原件) --CSV data set config (CSV数据文件设置)
注意下作用域,放在测试计划下面代表与线程组是同等位置,将作用于所有的线程组。
官方推荐使用这种:因为不会消耗很多系统资源,很多数据csv文件,保存在本地,即存在磁盘中。
最后会拿到内存中,供jmeter程序使用,因为计算机当中任何程序的交互都是cpu和内存进行交互,不会是cpu和磁盘进行交互,
但是数据又是存在磁盘中,所以就会有个过程,cpu和内存交互的过程中发现,如果内存中有些数据没有,那么内存将会去从磁盘中加载数据取到放在内存中,
然后cpu继续和内存进行交互,cpu是不会直接和磁盘进行交互的。。如果从磁盘取的话,就会占用很多系统资源,内存资源,所以这个时候csv文件设置避免消耗太多内存资源这种情况。
CSV文件参数解析
1、文件名:指保存信息的文件目录,选择文件的路径(支持相对路径(也可以,就放在jmeter/bin下面,文件路径写死了就是指的bin下面)文件名也支持绝对路径(推荐使用)文件名。否则会在jmeter日志文件(jmeter.log目录位置D:\Program Files\apache-jmeter-2.13\bin)中提示:系统找不到指定文件,运行脚本后,登录失败。
对于分布式测试,CSV文件必须存储在分布式服务器主机系统上与JMeter服务器启动的正确相对目录中。
分布式测试,csv文件默认放在Linux-jmeter的bin目录下。
2、文件编码:保持默认,可不选。默认为ANSI ( ASCII码的拓展)
3、变量名称:后续我们引用csv文件的时候,所使用的名称。给CSV文件中各列起个名字(有多列时,用英文逗号隔开列名)
如下截图:3列起3个变量名字
4、忽略首行:如果csv文件中设置了参数化数据的名称,而不是要使用的数据,则可以选择忽略首行。
第一行数据有用,就不忽略
第一行数据没用,就忽略
是否忽略首行:false(否,不忽略) true(是,忽略)
5、分隔符:默认因为逗号, 即列与列之间的分隔符 ;
是csv文件中各列与各列之间的分隔符,比如逗号,
与 .csv文件的分隔符保持一致。如文件中使用的是逗号分隔,则填写逗号;如使用的是TAB,则填写\t;
6、是否允许带引号:默认false;如果有引号 是否会带引号 默认false
单引号不会忽略,只会忽略双引号,比如“name” name
自己调试一下,即只对双引号生效。
但是如果请求体是body-json格式,这个必须设置为true
{
"name":"${name}",
"pwd":"${pwd}"
}
7、遇到文件结束符是否再次循环:
默认true
设置为True—继续从文件第一行开始读取,
设置为False—不再循环,会有EOF,空值。
举例:如果文件有10个数据,到最后一行后,下一行没有数据了,
选择true的话,就会从01再次开始循环;
选择false的话,就会停止循环,但是线程数=11的话,数据只有10个,那么第11个数据取值为<EOF>。
8、遇到文件结束符/文件尾是否停止线程: 即到了文件尾是否停止线程?
默认false
false是不停止线程。
true是停止线程。
注:当Recycle on EOF【遇到文件结束符再次循环】设置为True时,此项设置【遇到文件结束符/文件尾是否停止线程】无效。 第11次不会运行
为什么无效?
因为当上面的Recycle on EOF设置为true,下面8也设置的true ,即代表7一直有值没有结束,会继续运行,所以值够的情况下,
Stop thread on EOF? :是true还是false都无所谓。
前提条件:第7项是fasle
(1)
【遇到文件结束符再次循环】即第7项选择false的话,就会停止循环,就数据10就结束了,不会再循环取数据了。
----遇到文件结束符停止线程:默认false,本次选择true是停止。
比如线程数=20,但是数据只有10个,那么数据取完运行完10个线程数,第11个不再运行,即停止线程。
(2)
【遇到文件结束符再次循环】即第7项选择false的话,就会停止循环,就数据10就结束了,不会再循环取数据了。
----遇到文件结束符停止线程:默认false,本次选择false是不停止线程。
比如线程数=20,但是数据只有10个,那么数据取完运行完10个线程数,第11个仍运行,后面取值全部取的是<EOF>。
9、线程共享模式:默认[所有线程] ,还有[当前线程组] [当前线程]
参数化的取值取决于线程共享模式,默认所有线程,是个难点!!
小知识点:
如果文件是用的excel的话,那么保存文件另存为---文件类型选择.csv类型。
不要直接修改文件名