用户定义的变量作为CSV数据集配置元素中的文件名

时间:2016-07-27 20:45:40

标签: jmeter

我有一个用户定义的变量,我将该位置放到csv文件中。

csv_path = mydrive / thisfolder / thecsv.csv

当我将$ {csv_path}作为我的文件名参数放入CSV数据集配置元素时,我收到一个错误,它显示该路径只是csv文件的名称。如果我手动将文件名放在那里就可以了。有任何想法吗?我试图创建一个相对路径,而不是硬编码绝对路径。

2 个答案:

答案 0 :(得分:2)

定义用户定义的变量时,使用如下所示的属性分配csv文件的路径(相对路径工作):

enter image description here

然后,在您的CSV数据集配置中,使用如下属性名称来引用该文件:

enter image description here

答案 1 :(得分:1)

CSV数据集配置元素在之前初始化任何JMeter变量,因此请考虑使用JMeter属性。 JMeter属性是java.util.Properties的实例,因此继承了所有功能,如:

  • 属性是JVM的全局属性,一旦定义为实时,直到JVM关闭
  • 作为上一点的结果 - 您可以使用JMeter属性跨线程组共享数据,而JMeter变量是其自己的线程组的本地变量,无法在外部访问
  • 您可以指定默认值,即如果属性未被覆盖 - 则使用合理的默认值

因此,为了参数化您的CSV文件名:

  1. 定义JMeter属性。主要有两种方式:

    • 将以下行添加到 user.properties 文件(位于JMeter' s" bin"文件夹中)

      csv_path = mydrive/thisfolder/thecsv.csv
      
    • 通过-J命令行参数将属性传递给JMeter,如:

      jmeter -Jcsv_path = mydrive/thisfolder/thecsv.csv -n -t ....
      

      有关不同JMeter和Java属性类型以及使用它们的方式的更多信息,请参阅Apache JMeter Properties Customization Guide

  2. 一旦您定义了该属性,您就可以使用__P()__property()函数在需要时访问该值:

    • ${__P(csv_path,)}
    • ${__property(csv_path,,)}
  3. 使用Functions Helper Dialog开发函数会更好,因为它们的语法可能看起来很吓人。