CSV 数据文件变量是指从外部 csv 文件读取数据出来作为变量
选择请求 >>> 添加 >>> 配置元件 >>> CSV 数据文件设置
设置 CSV 数据文件(Configure the CSV Data Source)
(1)、文件名(Filename):csv 文件路径,可以是绝对路径或者相对路径
建议设置成相对路径,填写相对于脚本的路径,后续远程压测或迁移时,可以更好的找个文件
(2)、文件编码(File encoding):编码格式,与所选文件编码格式保持一致
(3)、变量名称(西文逗号间隔)(Variable Names (comma-delimited)):如果文件中只有一个变量,直接写变量名,如果有多个变量,用英语的逗号隔开。例:var1,var2
(4)、忽略首行(只在设置了变量名称后才生效)(Ignore first line (only used if Variable Names is not empty)):
True:设置为 True 时,从文件第二行开始读取,此时文件第一行为变量名,例:var1,var2;设置为 True,变量名称可以不用设置,在文件第一行设置即可
False:一般设置为 False,文件从第一行开始设置变量数据,在变量名称中设置名称
(5)、分隔符(用 ‘\t’ 代替制表符)( Delimiter (use ‘\t’ for tab)):根据文件中的分隔符进行填写,默认:,
(6)、是否允许带引号?(Allow quoted data?):
True:参数文件包含引号时,实际的数据为引号中的数据。比如参数文件中的数据为"1,2",当使用该参数时,实际取得值为1,2
False:参数文件包含引号时,实际取得值为全部的值。比如参数文件中的数据为"1,2",当使用该参数时,实际取得值为"1,2"会取成两个参数
(7)、遇到文件结束符再次循环?(Recycle on EOF?):
True:参数文件中的数据循环使用,测试按照线程组中的设置执行。比如csv 文件共有 10 条记录,但线程数有 15 个,循环 10 次后,重头开始循环取值
False:参数文件不再循环遍历取值
(8)、遇到文件结束符停止线程(Stop thread on EOF?):
True:当执行完参数文件中所有参数后,直接停止线程
False:不停止
(9)、线程共享模式(Sharing mode):
所有线程(All threads):参数文件对所有线程共享,这包括同一测试计划中的不同线程组(测试计划下的所有线程组下的所有线程共享参数文件,所有线程之前参数取值互相影响,线程在同一次迭代下取值相同)
当前线程组(Current thread group): 只对当前线程组中的线程共享(当前线程组下的所有线程公用一个参数文件,同一个线程组下的线程之前取值相互影响,线程在同一次迭代下取值相同)
当前线程(Current thread): 仅当前线程获取(即每个线程获取一个参数文件,各个线程之间参数取值互不影响,线程在同一次迭代下取值相同)
当参数文件的位置与线程组在同级下,线程组下存在循环控制器时,循环控制器下的参数取值相同
线程组下存在循环控制器时,当参数文件在循环控制器下,循环控制器下每次迭代时重新取值
线程组下存在仅一次控制器,参数文件在仅一次控制器下,当参数在仅一次控制器下取值一次之后,之后无论哪次迭代参数取值都不变,类似于unique once
注:创建 CSV 文件最好用 notepad 创建,编码格式为 UTF-8
(1)、编写一个文件名为 data.csv 的文件,并添加数据
(2)、测试计划右键 <<< 添加 <<< 配置元件 <<< CSV Data Set Config(CSV 数据文件设置)
文件名:文件所在路径
文件编码:中文使用 utf-8
变量名称:var1,var2
是否允许带引号?:文件中,有个参数为 “张,三”,此处选择 True 允许,去值时,会将 “张,三” 当一个值;如果选 False,会当两个值取 “张” “三”
(3)、测试计划右键 <<< 添加 <<< 线程(用户) <<< 线程组
(4)、线程组右键 <<< 添加 <<< 取样器 <<< JSR223 Sampler
log.warn("线程:"+ctx.getThreadNum()+",变量1:"+vars.get("var1")+",变量2:"+vars.get("var2"));
(5)、设置日志级别为 WARN,打开日志,点击启动
选项 <<< 日志级别 <<< WARN
选项 <<< 日志查看
脚本在测试计划演示脚本基础上验证
(1)、修改 data.csv 文件中数据
(2)、修改 CSV Data Set Config(CSV 数据文件设置),清除日志并启动
删掉变量名称
忽略首行选择 True
修改 CSV Data Set Config(CSV 数据文件设置),清除日志并启动
(1)、修改线程组
(2)、修改 CSV Data Set Config(CSV 数据文件设置),清除日志并启动
修改 CSV Data Set Config(CSV 数据文件设置),清除日志并启动
(1)、修改线程组
(2)、修改 CSV Data Set Config(CSV 数据文件设置),清除日志并启动
(1)、将线程组和 JSR223 Sampler 复制出一份
(2)、设置两个线程组线程数都为3,都循环2次,修改下输出代码
log.warn("执行线程组二,线程:"+ctx.getThreadNum()+",变量1:"+vars.get("var1")+",变量2:"+vars.get("var2"));
(3)、修改 CSV Data Set Config(CSV 数据文件设置),清除日志并启动