Jmeter使用csv文件读取测试数据
最近有同事在测试过程中遇到需要造批量测试数据的问题,这些数据往往是同一种单据,但是单据的内容不同,如果手工创建就比较费时费力。那我们用jmeter的csv文件来读取测试数据就完美解决了这个问题。
我们今天使用Jmeter5.1.1调用博客园的开放API来举例,接口信息如下:
获取新闻内容
Url: http://wcf.open.cnblogs.com/news/item/{CONTENTID}
HTTP Method: GET
csv文件准备
- 新建一个文本文档,然后把后缀.txt改成.csv,使用notepad或者记事本打开(这里使用的是notepad)
- 将我们的批量测试数据 CONTENTID(新闻Id)写进来
添加CSV数据文件设置
- 添加CSV数据文件设置:打开jmeter → 右键测试计划 → 添加配置元件 → CSV 数据文件设置
创建HTTP请求
- 创建HTTP请求:打开Jmeter → 右键测试计划 → 添加-线程-线程组 → 右键线程组 → 添加-取样器-HTTP请求
- 添加查看结果树:右键HTTP请求 → 添加-监听器-查看结果树
- 将上面的接口信息复制到HTTP请求中,一切准备就绪如下图:
运行并查看结果
设置线程数和循环次数后启动(这里我设置的是1个线程循环15次):
查看结果树,发现的CONTENTID已经是CSV数据文件中的数据了,响应数据就是对应Id的内容。
最后,我们回到开始的问题,造大量的不同内容的相同单据。我们使用CSV文件来存不同的内容,使用jmeter来循环调用创建数据的接口,这样就不用手动再去创建单据了,既省时又省力。
CSV文件设置参数说明:
参数 | 说明 |
---|---|
文件名 | 你的CSV数据文件的路径 |
文件编码 | 例如可以是UTF-8。那么jmeter就会以UTF-8读取文件 |
变量名称 | 以逗号分隔的名称列表,它与CSV文件中的列相匹配。 |
忽略首行 | 如果第一行是列名而不是测试数据,就选择True忽略掉列名 |
分隔符 | 默认为','也可以设置为其他值(建议使用默认) |
是否允许带引号 | 默认为False,如果测试数据中带有引号则设置为Ture |
遇到文件结束符再次循环 | 默认为True,意思读完最后一行在回来读取第一行 |
遇到文件结束符停止线程 | 读完最后一行停止线程 |
线程共享模式 | 定义如何在并发线程之间分配值 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构