当前位置: 首页 > 知识库问答 >
问题:

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

郭盛
2023-03-14

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

csv_path = 我的驱动器/此文件夹/.csv

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

共有2个答案

郝池暝
2023-03-14

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

    < li >属性对于JVM是全局的,一旦定义,就一直有效,直到JVM关闭为止 < li >作为上一点的结果,您可以使用JMeter属性在线程组之间共享数据,而JMeter变量对于它们自己的线程组是本地的,不能在外部访问 < li >您可以指定默认值,即如果属性未被覆盖,则使用合理的默认值

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

>

  • 定义JMeter属性。有2种主要方法:

    > < li>

    将以下行添加到user.properties文件(位于JMeter的“bin”文件夹中)

    csv_path = mydrive/thisfolder/thecsv.csv
    

    通过< code>-J命令行参数将属性传递给JMeter,如下所示:

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

    有关不同JMeter和Java属性类型及其使用方法的更多信息,请参阅《Apache JMeter属性定制指南》

    定义属性后,您可以根据需要使用__P()或__property()函数访问其值,例如:

    • ${__P(csv_path,)}
    • ${__property(csv_path,)}

    最好使用functions Helper Dialog开发函数,因为它们的语法可能看起来很可怕。

  • 翟黎明
    2023-03-14

    定义用户定义的变量时,使用如下所示的属性指定csv文件的路径(相对路径有效):

    然后,在CSV数据集配置中,使用属性名引用该文件,如下所示:

     类似资料:
    • 我在一个线程中使用多个csv文件进行比较。 这里,第一个CSV数据集配置返回文件名 现在我想将上面的文件名传递给第二个 CSV 数据集 配置 在jmeter中可能吗?任何人都可以帮助我解决问题。 谢谢,维杰

    • 我的脚本是创建csv文件,然后在csv数据集配置中读取该文件。我有一个文件名,并将其放入变量(path)中,然后在CSV数据集配置的文件名输入中发送${path}。我调试和路径变量具有我想要的值,例如(Perf_04.csv),并且也创建了该文件。但Jmeter总是显示${path}不存在的问题。有人对这个问题有想法吗?似乎在运行Jmeter时,会首先运行csv数据集config,当一开始找不到此

    • 我已经为负载测试创建了jeter脚本,并添加了CSV数据元素来读取300的用户名和密码Users.Also遵循以下步骤; 使用记事本创建CSV文件,并将其存储在创建的脚本存储的目录中 CSV数据集元素中定义的变量和文件路径 将变量用作HTTP请求的参数 增加的线程数 但是效果并不像预期的那样。我该如何解决这个问题?

    • 在我的JMeter测试中,我在其他几个模块中嵌套了一个循环控制器,其中包含一个CSV数据集配置。我的线程组顶部还有一个CSV数据集配置,它从CSV读取文件位置。我要在嵌套的CSV数据集中使用这个文件位置,以便从该位置获取CSV并循环访问该位置。由于在测试开始时一次加载了所有的CSV文件,因此会抛出一个错误。有没有一种方法可以延迟CSV的加载,这样我就可以确保文件路径变量已经设置好了?

    • 我希望能够传递一个CSV文件,其中包含JMeter测试(CSV数据集配置)要使用的参数,而不是将CSV数据源硬编码为JMeter检测的一部分。这可能吗?我似乎在JMeter的命令行选项列表中的任何位置都找不到这一点。 JMeter 数据集配置参考。

    • 我试图在jeter中的两个CSV数据集配置之间共享变量,但不幸的是,所有配置元素都同时加载,因此它无法从CSV文件中读取新导入的变量。 < li >我想导入包含登录名、密码、第三变量CSV数据集配置测试计划映像的CSV文件 < li >我想将第三个变量作为文件路径的一部分传递给下一个CSV数据集配置第二个Csv数据集配置,其中包含第一个变量的变量 实际结果:Java . lang . illega