JMeter批量新增单据
一、场景
需要模拟用户手工填单操作批量新增单据,使用JMeter按csv文件中的内容批量新增。
二、实现
1、样例
此处以添加简单的TODO事项为例:

例如:需要添加的TODO事项csv文件如下:
data.csv:
Description,Date
Complete report,21/12/2024
Arrange meeting,22/12/2024
Go running,23/12/2024
Prepare dinner,24/12/2024
Send email,25/12/2024
Read book,26/12/2024
Buy groceries,27/12/2024
Call client,28/12/2024
Write summary,29/12/2024
Review plan,30/12/2024
2、JMeter循环读取数据
- CSV Data Set Config
JMeter的CSV Data Set Config用于从外部文件(如 CSV文件)中读取数据,实现请求参数的动态化。
| 配置项 | 说明 |
| Filename | CSV 文件路径 |
| File Encoding | 文件编码 |
| Variable Names | 变量名列表(用英文逗号分隔),对应CSV文件中的各列,后续通过${变量名}格式引用 |
| Ignore first line | 是否忽略首行,如果首行为标题,一般需要忽略 |
| Delimiter | 每行数据的分隔符,默认为英文逗号 |
| Allow quoted data | 数据是否在引号内,例如:”张三,18”,此属性为True时,张三,18是一个数据,为False时,是"张三和18"两个数据 |
| Recycle on EOF | 读到文件结尾时是否循环读取,True为从头重新开始,False为结束 |
| Stop thread on EOF | 读取到文件结尾时是否停止线程,此设置仅在Recycle on EOF为False时生效 |
| Sharing mode | 线程共享模式,控制多个线程如何共享数据 |
- Debug Sampler
JMeter的调试取样器Debug Sampler是一个内置的调试工具,主要用来在脚本运行时,实时查看JMeter变量、属性等的值。
| 配置项 | 说明 |
| JMeter properties | 是否在结果中显示所有的JMeter属性(通常是JMeter自身的全局配置) |
| JMeter variables | 是否显示当前线程/用户可见的所有JMeter变量 |
| System properties | 是否显示Java虚拟机和操作系统的环境属性 |
- 测试
将循环控制器设置为循环10次,增加察看结果树:

运行结果:

通过Debug Sampler可以看到正确的读取了csv文件中的数据。
3、批量新增
- 分析请求数据
使用网络工具分析新增待办时的请求方式及数据:
请求地址:http://localhost:8080/add-todo
请求方式:POST
表单数据:
id: 0
description: todo-001
targetDate: 21/12/2024
在JMeter中增加HTTP请求:

- HTTP信息头管理器
由于需要登录才能操作,此处为了快速使用,直接复制一个已登录的请求头:

需要注意,从F12网络中复制的数据中Key、Value之间的:后不能有空格,例如:
Connection: keep-alive
...
需要替换为:
Connection:keep-alive
...
再粘贴到JMeter中。
- 运行
运行JMeter,可以在察看结果树中看到请求全部成功:

刷新TODO列表,可以看到批量新增成功:
