51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 604|回复: 1
打印 上一主题 下一主题

[原创] 跨平台测试csv文件路径该如何设置?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-12-8 16:22:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
很多人在使用jmeter进行参数的时候,喜欢用csv文件设置方式,就是先准备一个数据文件,然后再在jmeter中添加csv文件设置,配置读取文件中的数据来用于测试。


  这样一种方式,非常好用,但是在企业实际工作中,经常会出现编写脚本的机器和实际执行测试的机器类型不一样。

  如:调试脚本时,用的是windows机器,但是在与jenkins结合,持续集成之后,运行的环境在linux系统中;

  或脚本调试时,是windows机器,做分布式测试时,为了能获得更大的并发用户,采用linux机器最为助攻机。

  在这样一种诉求下,大家的文件路径不一致,就带来了很多困扰,不知道如何解决。

  今天呢,我就针对大家这样一个问题的困惑,给一个非常简单的万能解决方法。

  先把解决办法给大家,后面,再给大家讲解。

  首先,在你启动的jmeter的bin目录中,创建你的csv文件,添加数据。

  然后,在jmeter中,添加 配置元件 > csv数据文件设置,在文件路径中,写上

  ${__P(ser.dir,)}${__P(file.separator,)}userdata1216.txt

  其中 userdata1216.txt为你的数据文件名称。




好了, 就这样ok了,这样你的只要把你的测试数据文件上传到执行你脚本机器jmeter的bin路径下,这个脚本就可以跨平台执行了。

  那为什么这样写就可以跨平台呢?



  首先,大家要知道__P()这个函数,这是一个获取属性的函数。

  明白这点,那应该就能想明白user.dir 和 file.separator 都是属性。


  接下来,就又会问了,这两个属性,他们的值会是什么呢?


  下面,我们再看两张图:





看懂了吗?

  第一张是window下的jmeter获取到的系统所有属性,其中 file.separator 的值是 ‘\’ user.dir 是我jmeter的路径;


  第二张是linux系统中,jmeter获取到的所有系统属性,其中file.separator 的值是 ‘/’ user.dir 是我jmeter的路径。


  现在应该明白${__P(ser.dir,)}${__P(file.separator,)}userdata1216.txt 这个是什么意思了吧。


  根据系统不同、jmeter安装路径不同,自动获取jmeter的路径,然后再获取不同系统下的文件路径分隔符,最后跟上文件名称。


  这样,你在做csv数据读取文件,进行参数化时,就不用担心跨平台,路径不一致问题了,前提就是你的数据文件要放在jmeter的bin路径下。






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-5-10 23:36 , Processed in 0.065869 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表