Jmeter系列(26)- 详解 CSV 数据文件设置

转自:https://www.cnblogs.com/poloyy/

一、了解一哈什么是 CSV 文件

  • 为了实现简单的数据存储,是一个纯文本的文件
  • 最通用的一种文件格式,它可以非常容易地被导入各种PC表格及数据库中
  • CSV 文件可以用记事本、excel打开;用记事本打开的话,每一列数据都用逗号隔开

二、为什么要用 CSV 数据文件?

  • 从外部导入测试数据,相当于数据参数化
  • 通过从文件中导入大量的测试数据,来模拟大量真实用户发送并发请求

三、CSV 数据文件设置

img

四、CSV 数据文件设置界面介绍

img

4.1 字段含义

字段 含义
Filename 文件名
File encoding 文件编码
Variable Names 变量名称
多个变量用, 分隔
Ignore first line 忽略首行
只在设置了变量名称后才生效
Delimiter 分隔符
默认,
Allow quoted data? 是否允许带引号
Recycle on EOF? 遇到文件结束符EOF 后再次循环
Stop thread on EOF? 遇到文件结束符EOF 后停止运行线程?
Sharing mode 线程共享模式

​ 后续通过各种栗子来深入理解常用字段的含义

五、单个字段的例子

5.1 csv 测试数据

img

​ 这里用记事本方式当 CSV 数据文件,共有 10 条记录

5.2 线程组结构树

img

​ ${num} 是计数器里面声明的变量,从 1 开始递增到 15

5.3 线程组属性

img

​ 线程数和数据量一致,都是 15

5.4 csv 数据文件设置

img

5.5 运行结果

img

5.6 知识点

  • 忽略首行 True:一般首行都是字段名字,比如栗子的 mobile,一般都需要忽略除非没有字段名
  • 是否允许带引号 False:可以看到有引号的三条记录 8、9、10,都还是保留了引号
  • 再次循环 True:csv 文件共有 10 条记录,但线程数有 15 个,循环 10 次后,重头开始循环;可以看到 11-15的手机号和1-5的手机号
  • 停止线程 False:取了 10 次值之后就到了文件尾部,但并不会停止运行线程,后面会举个反例

六、多个字段的综合例子

6.1 csv 测试数据

img

​ 两个字段,共有 10 条记录,最后三条记录有分别有三种引号

6.2 csv 数据文件设置

​ 线程组结构树和上面栗子差不多一样,线程数仍然 = 15

img

和第一个例子的配置项相反:不忽略首行,允许带引号,遇到文件结束符不再循环

6.3 运行结果

img

  • 不忽略首行就会把首行的字段名都返回回来,如:1-mobile-age
  • 数据有双引号 "" 时,会把双引号忽略掉, '' 单引号不算
  • EOF 是文件结束符,没有开启再次循环时,会直接返回 EOF

七、开启遇到文件结束符停止线程

​ 还是上个栗子的线程组,只是改了下配置项

img

7.1 运行结果

img

​ 可以看到,线程数 = 15,但只有 10 条数据,当跑了 10 个线程后,没有数据了,所以停止运行

原文地址:https://www.cnblogs.com/dongye95/p/14180701.html