当前位置: 首页 > 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 验证请求参数
http://www.xdnf.cn/news/444871.html

相关文章:

  • (1-4)Java Object类、Final、注解、设计模式、抽象类、接口、内部类
  • Doris与ClickHouse深度比较
  • 语音合成之十四 文本转语音(TTS)开源数据集
  • 互联网大厂Java求职面试:优惠券服务架构设计与AI增强实践-6
  • 使用IDEA创建Maven版本的web项目以及lombok的使用
  • 玛哈特矫平机:金属板材加工中的“平整大师”
  • 解读RTOS 第七篇 · 驱动框架与中间件集成
  • Milvus 全面解析
  • 非异步信号安全函数
  • The 2022 ICPC Asia Xian Regional Contest(E,L)题解
  • 5 WPF中的application对象介绍
  • DHCP协议
  • 每日算法-250514
  • Untiy基础学习(十四)核心系统—物理系统之碰撞检测代码篇 刚体,碰撞体,材质
  • 网络运维过程中的常用命令
  • idea中编写spark程序
  • 通过迁移学习改进深度学习模型
  • Python Day25 学习
  • MCU裸机程序如何移植到RTOS?
  • MySQL 入门大全:数据类型
  • 【漫话机器学习系列】258.拐点(Inflection Point)
  • C++中如何实现一个单例模式?
  • Spring Cloud:构建云原生微服务架构的最佳工具和实践
  • 机密虚拟机的威胁模型
  • 仓配一体化系统如何选择,ERP、OMS、WMS 功能解析与搭配策略
  • 生成对抗网络(Generative Adversarial Networks ,GAN)
  • 仿生眼机器人(人脸跟踪版)系列之一
  • 2025tg最新免费社工库机器人
  • Kotlin Multiplatform与Flutter、Compose共存:构建高效跨平台应用的完整指南
  • 【kafka】kafka概念,使用技巧go示例