转自:https://www.cnblogs.com/poloyy/
一、抛出问题
- 上一篇文章中详细讲解了 CSV 数据文件设置的用法:https://www.cnblogs.com/poloyy
- 通常,我们编写、调试脚本都是在 Window 机器上,而真正性能测试时,脚本几乎都在 Linux 下运行
- 使用 CSV 数据文件做参数化时,是需要
指定文件路径
的 这里就有个问题:
Window 下写的文件路径到了 Linux 下是不正确的,导致无法正常读取 CSV 文件- 为了解决这个问题,下面将要讲解一个简单的万能解决方法
二、两个前提
- 我们的 CSV 文件必须在 Jmeter 的 bin 目录下创建,然后再添加自己要的数据
- Jmeter 必须从 bin 目录下启动,不能通过 cmd,否则会有问题(下面说)
三、具体方法
CSV 数据文件设置直接按下面的格式写
这样就可以了,只要把 CSV 文件上传到 Linux 系统 Jmeter 下的 bin 目录,这个脚本就可以跨平台执行了
四、实现跨平台的原理
5.1 __P() 函数
用来获取 Jmeter 的属性,那我们怎么知道 Jmeter 有什么属性呢?
5.2 如何查看 Jmeter 属性
测试计划右键添加
5.3 Window 下查看属性 user.dir,file.separator
可以看到
file.separator
的值是,这也是 Window 特有的路径分隔符
user.dir
的值是 Jmeter 安装路径下的 bin 目录
如果通过 cmd 运行 Jmeter,那么 user.dir
又会显示什么呢?
看到并不是显示 Jmeter 的 bin 目录,这不是我们想要的结果;所以请记住需要 在 bin 目录下启动 Jmeter
5.4 Linux 下查看属性 user.dir,file.separator
可以看到
file.separator
的值是/
,这也是 Linux 的路径分隔符user.dir
的值是 Jmeter 安装路径下的 bin 目录,和 Window 的截然不同
六、总结
${__P(user.dir,)}${__P(file.separator,)}test.txt
可以根据不同的系统,不同的 Jmeter 安装路径,自动获取 Jmeter 路径,然后再获取不同系统下的文件路径分隔符,最后加上文件名称拼成文件路径- 这样就可以解决使用 CSV 数据文件做参数化时,跨平台导致路径不一致的问题
重点前提:
CSV 文件放在 Jmeter 的 bin 目录下,且通过 bin 目录运行 Jmeter