JMeter参数化时CSV动态获取文件路径

发布时间 2023-11-10 16:23:43作者: FanF

一、背景

在性能测试参数化时,需要配置参数化文件的路径,如果在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目录

  • windows中启动Jmeter时,文件分隔符为\

1.3、在linux系统中,用在bin目录直接启动jmeter时

当在linux系统中,在bin目录启动jmeter时,file.separator 文件分隔符的值是 /

highlighter- awk
#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属性值拼接路径,如图:

highlighter- stata
${__P(user.dir,)}${__P(file.separator,)}test.csv

#拼接后,相当于C:\apache-jmeter-5.3\bin\test.csv

如果测试数据文件(test.csv)放在bin目录下的子文件夹下(scripts),也可以用jmeter属性值拼接路径,如图:

highlighter- stata
${__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

三、参考

1、https://www.jianshu.com/p/2131ee918b3b

2、https://www.cnblogs.com/uncleyong/p/13368196.html