JMeter参数化时CSV动态获取文件路径
一、背景
在性能测试参数化时,需要配置参数化文件的路径,如果在windows中配置路径(data/test.csv),脚本需要放在linux系统中执行压测时会变成(data/test.csv),这就会导致路径报错的问题,如何解决这个问题,具体如下所示。
注意:在性能测试时,不推荐用csv文件,实在要用文件的话可以用txt文件。
二、动态获取路径
在CSV文件参数化时,推荐使用相对路径。
首先,jmeter默认目录是bin文件夹,尤其是在linux系统中启动jmeter时,所以可以将jmeter的脚本也保存在bin目录。
所以要自动化获取csv文件路劲,需要有前提条件:
- CSV 文件保存在 Jmeter 的 bin 目录;
- Jmeter 必须从 bin 目录下启动,不能通过 cmd命令启动,因为从cmd启动时,默认的路径不是bin目录。
注意:
- 当在windows系统中,在bin目录启动jmeter时,默认路径属性值user.dir路径为
C:\apache-jmeter-5.3\bin
,file.separator 文件分隔符的值是 \ - 当在linux系统中,在bin目录启动jmeter时,默认路径属性值user.dir路径为
C:\apache-jmeter-5.3\bin
,file.separator 文件分隔符的值是 /
1、启动方式影响默认路径
当在windows系统中,用cmd命令启动jmeter时,默认路径属性值user.dir路径为C:\Users\xtank
当在windows系统中,在bin目录启动jmeter时,默认路径属性值user.dir路径为C:\apache-jmeter-5.3\bin
,所以推荐在bin目录启动jmeter。具体如下所示:
1.1、当在windows系统中,用cmd命令启动时
1.2、当在windows系统中,用在bin目录直接启动jmeter时
- bin目录中,通过jmeter.bat启动
- 查看jmeter启动后的属性值,默认路径为bin目录
1.3、在linux系统中,用在bin目录直接启动jmeter时
当在linux系统中,在bin目录启动jmeter时,file.separator 文件分隔符的值是 /
#linux系统中下载jmeter
wget https://mirrors.aliyun.com/apache/jmeter/binaries/apache-jmeter-5.5.tgz
#linux系统中解压jmeter
tar -xzf apache-jmeter-5.5.tgz
2、属性值拼接路径
当在windows系统中,将csv测试数据,直接保存在默认路径C:\apache-jmeter-5.3\bin下,如图所示:
当在windows系统中,在bin目录启动jmeter时,默认路径属性值user.dir路径为C:\apache-jmeter-5.3\bin
,所以直接可以配置文件名,就可以读取到测试数据内容,如图所示:
jmeter默认打开bin目录,此时路径将自动拼接是:默认路径+test.csv,也就是C:\apache-jmeter-5.3\bin\test.csv,如图所示,获取文件成功。
当然也可以用jmeter属性值拼接路径,如图:
${__P(user.dir,)}${__P(file.separator,)}test.csv
#拼接后,相当于C:\apache-jmeter-5.3\bin\test.csv
如果测试数据文件(test.csv)放在bin目录下的子文件夹下(scripts),也可以用jmeter属性值拼接路径,如图:
${__P(user.dir,)}${__P(file.separator,)}scripts${__P(file.separator,)}test.csv
#拼接后,相当于C:\apache-jmeter-5.3\bin\scripts\test.csv
综述
-
${__P(user.dir,)}${__P(file.separator,)}test.csv
根据不同的操作系统,以及不同的 Jmeter 安装路径,然后再自动的获取不同系统下的文件路径分隔符,最后再拼接加上文件名称,最终形成测试数据的文件路径。 -
重点注意,CSV 文件放在 Jmeter 的 bin 目录下,且通过要 bin 目录启动 Jmeter
转载地址:https://www.cnblogs.com/xyztank/articles/16866870.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下