当前位置: 首页 > news >正文

Jmeter元件 CSV Data Set Config详解

文章目录

  • 一、元件作用
  • 二、核心参数详解
    • 1.参数解释
    • 2.数据共享模式介绍
      • 详细解析
      • 2.1 All threads模式
      • 2.2 Current thread group模式
      • 2.3 Current thread模式
  • 三、使用实例
    • 1.创建 CSV文件,编码保存为UTF-8:
    • 2.添加CSV配置元件,从CSV读取测试数据
    • 3. 通过CSV配置元件设置的变量名在请求中引用测试数据
  • 四、csv 编码介绍
    • 1.使用 Excel 保存为 UTF-8 CSV
    • 2.使用 Notepad++ 直接创建 UTF-8 CSV
  • 五、高级使用技巧
    • 1.跳过表头
    • 2.处理包含逗号的数据
    • 3.动态文件名
  • 六、常见问题
  • 六、最佳实践

一、元件作用

CSV Data Set Config 允许你:

  • 从 CSV 文件读取测试数据(如用户名、密码、ID 等)
  • 实现参数化测试,避免硬编码
  • 支持多线程并发读取
  • 适用于批量数据验证、性能测试等场景

二、核心参数详解

在这里插入图片描述

1.参数解释

在这里插入图片描述

2.数据共享模式介绍

在这里插入图片描述

详细解析

假设CSV文件内容如下:

CSV:
user1,pass1
user2,pass2
user3,pass3
user4,pass4
user5,pass5

并配置 2 个线程组(TG1 和 TG2),每个线程组 2 个线程(共 4 个线程)。

2.1 All threads模式

所有线程共享同一数据队列,按顺序循环读取,确保全局数据不重复(适合模拟大量不同用户)
执行顺序:


线程1 (TG1-1) → user1
线程2 (TG1-2) → user2
线程3 (TG2-1) → user3
线程4 (TG2-2) → user4
线程1 (TG1-1) → user5
线程2 (TG1-2) → user1 (循环)
...

2.2 Current thread group模式

每个线程组独立维护数据队列,组内线程按顺序读取,适合多组不同类型用户的并发测试(如管理员组、普通用户组)


# 线程组1
线程1 (TG1-1) → user1
线程2 (TG1-2) → user2
线程1 (TG1-1) → user3
线程2 (TG1-2) → user4
线程1 (TG1-1) → user5
线程2 (TG1-2) → user1 (循环)# 线程组2
线程3 (TG2-1) → user1
线程4 (TG2-2) → user2
线程3 (TG2-1) → user3
...

2.3 Current thread模式

每个线程独立读取完整的 CSV 文件,每个线程使用相同的数据序列(可能导致数据重复)适合功能测试,确保每个线程使用固定的测试数据

线程1 (TG1-1) → user1 → user2 → user3 → user4 → user5 → user1 → ...
线程2 (TG1-2) → user1 → user2 → user3 → user4 → user5 → user1 → ...
线程3 (TG2-1) → user1 → user2 → user3 → user4 → user5 → user1 → ...
线程4 (TG2-2) → user1 → user2 → user3 → user4 → user5 → user1 → ...

三、使用实例

1.创建 CSV文件,编码保存为UTF-8:

2.添加CSV配置元件,从CSV读取测试数据

3. 通过CSV配置元件设置的变量名在请求中引用测试数据

四、csv 编码介绍

在 JMeter 中使用 CSV 文件时,确保文件编码为 UTF-8 至关重要,否则可能导致中文或特殊字符乱码。

1.使用 Excel 保存为 UTF-8 CSV

Excel 默认保存的 CSV 可能是 ANSI 或其他编码,需通过以下步骤转为 UTF-8:
1.另存为 CSV:

  • 打开 Excel 文件 → 文件 → 另存为
  • 选择 CSV (逗号分隔)(*.csv) 格式
  • 点击 保存

2.编码转换:

  • 使用文本编辑器(如 Notepad++)打开保存的 CSV 文件
  • 编码 → 转为 UTF-8 无 BOM 格式
  • 文件 → 保存

UTF-8编码:是一种多字节编码,支持全球范围内的几乎所有字符,是目前最常用的编码格式之一。在 UTF-8 编码中,英文字符占用 1 个字节,而其他字符可能占用 2 到 4 个字节,通常中文字符占用 3 个字节。Notepad++ 保存 UTF-8 编码文件时,默认会添加一个 3 字节的 BOM(字节顺序标记),用于标识文件的编码格式,但这可能会在某些情况下导致问题,比如在一些网络应用或特定的文本处理场景中。因此,Notepad++ 也提供了 “UTF-8 无 BOM” 的选项,即保存文件时不添加 BOM,这样可以节省 3 个字节的空间,但会使编码检测变得困难一些。
ANSI:严格来说,ANSI 并不是一种具体的编码,而是一系列本地化编码的统称。在 Windows 系统中,ANSI 编码通常对应着系统的默认本地编码,比如在中国通常是 GBK 编码。ANSI 编码适用于英文和部分欧洲语言,它是单字节编码,文件大小相对较小,但不支持其他语言的字符,处理非英文文本时可能会出现乱码。

2.使用 Notepad++ 直接创建 UTF-8 CSV

1.新建文件:

  • 打开 Notepad++ → 文件 → 新建

2.设置编码:

  • 编码 → UTF-8 无 BOM 格式

3.编辑内容:

  • 按 CSV 格式输入内容,用逗号分隔字段

4.保存文件:

  • 文件 → 保存 → 文件名 .csv → 保存类型: 所有文件

五、高级使用技巧

1.跳过表头

若 CSV 文件包含表头,可通过以下方式跳过:

  • 在 CSV 文件首行添加注释符号(如 #)
  • 使用 Ignore first line 选项(JMeter 5.0+ 支持)

2.处理包含逗号的数据

若数据中包含逗号,用双引号包裹,并设置 Allow quoted data 为true
csv
id,name,desc
1,John,“Engineer, Developer”
2,Alice,“Manager, Leader”

3.动态文件名

使用变量指定文件名:

<stringProp name="filename">${__property(dataDir)}/users.csv</stringProp>

六、常见问题

在这里插入图片描述

六、最佳实践

1.文件组织:将 CSV 文件与 JMX 测试计划放在同一目录,使用相对路径
2.编码统一:始终使用 UTF-8 编码,避免中文乱码
3.数据隔离

  • 性能测试:使用 All threads 模式,确保数据不重复
  • 功能测试:使用Current thread 模式,保证每个线程使用独立数据

4.调试方法

  • 添加 Debug Sampler 查看变量值
  • 使用 View Results Tree 验证请求参数

相关文章:

  • Python笔记:c++内嵌python,c++主窗口如何传递给脚本中的QDialog,使用的是pybind11
  • Java 框架配置自动化:告别冗长的 XML 与 YAML 文件
  • [Linux] vim及gcc工具
  • 本地部署小红书FireRedASR
  • Vue百日学习计划Day4-8——Gemini版
  • 基于javaweb的SpringBoot自习室预约系统设计与实现(源码+文档+部署讲解)
  • 算法题(146):最大子段和
  • Pass-the-Hash攻击原理与防御实战指南
  • Python × CARLA:如何在自动驾驶仿真世界里打造智能驾驶系统?
  • ElasticSearch深入解析(十二):聚合——分桶聚合、指标聚合、管道子聚合
  • 歌词滚动效果
  • Docker镜像操作全攻略:从查看、拉取到删除
  • Stable Diffusion WebUI 插件大全:功能详解与下载地址
  • 命令行快速上传文件到SFTP服务器(附参考示例)
  • 配置Spark环境
  • 从规则驱动到深度学习:自然语言生成的进化之路
  • 人机环境体系的自主决策与机器系统的自主决策不同
  • 3337. 字符串转换后的长度 II
  • 微服务商城(1)开篇、服务划分
  • LLM(大语言模型)部署加速方法——PagedAttention
  • 河南省委常委会会议:坚持以案为鉴,深刻汲取教训
  • 英国首相斯塔默住所起火,警方紧急调查情况
  • 女高音吴睿睿“古词新唱”,穿着汉服唱唐诗宋词
  • 上海建筑领域绿色发展2025年工作要点发布
  • 打击网络谣言、共建清朗家园,中国互联网联合辟谣平台2025年4月辟谣榜
  • 瑞士联邦主席凯勒-祖特尔、联邦副主席帕姆兰会见何立峰