【问题标题】:jmeter csv data set config issue: Could not read file header line for filejmeter csv数据集配置问题:无法读取文件的文件头行
【发布时间】:2020-09-24 13:17:45
【问题描述】:

我试图从 csv 文件中提取数据以用于 POST 请求,但出现以下错误

java.lang.IllegalArgumentException: Could not read file header line for file v2summaryreport

v2summaryreport 是从另一个线程摘要报告中保存的,我想将该 csv 用于将发布的一组新结果。

错误信息

020-09-23 16:26:14,826 INFO o.a.j.e.StandardJMeterEngine: All thread groups have been started
2020-09-23 16:26:14,831 INFO o.a.j.t.JMeterThread: Thread started: Thread Group 3-1
2020-09-23 16:26:14,832 INFO o.a.j.s.FileServer: Stored: v2summaryreport
2020-09-23 16:26:14,832 ERROR o.a.j.t.JMeterThread: Test failed!
java.lang.IllegalArgumentException: Could not read file header line for file v2summaryreport
    at org.apache.jmeter.services.FileServer.reserveFile(FileServer.java:283) ~[ApacheJMeter_core.jar:5.1.1 r1855137]
    at org.apache.jmeter.config.CSVDataSet.iterationStart(CSVDataSet.java:183) ~[ApacheJMeter_components.jar:5.1.1 r1855137]
    at org.apache.jmeter.control.GenericController.fireIterationStart(GenericController.java:399) ~[ApacheJMeter_core.jar:5.1.1 r1855137]
    at org.apache.jmeter.control.GenericController.fireIterEvents(GenericController.java:391) ~[ApacheJMeter_core.jar:5.1.1 r1855137]
    at org.apache.jmeter.control.GenericController.next(GenericController.java:160) ~[ApacheJMeter_core.jar:5.1.1 r1855137]
    at org.apache.jmeter.control.LoopController.next(LoopController.java:135) ~[ApacheJMeter_core.jar:5.1.1 r1855137]
    at org.apache.jmeter.threads.AbstractThreadGroup.next(AbstractThreadGroup.java:87) ~[ApacheJMeter_core.jar:5.1.1 r1855137]
    at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:251) [ApacheJMeter_core.jar:5.1.1 r1855137]
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_261]
Caused by: java.lang.IllegalArgumentException: File v2summaryreport must exist and be readable
    at org.apache.jmeter.services.FileServer.createBufferedReader(FileServer.java:424) ~[ApacheJMeter_core.jar:5.1.1 r1855137]
    at org.apache.jmeter.services.FileServer.readLine(FileServer.java:340) ~[ApacheJMeter_core.jar:5.1.1 r1855137]
    at org.apache.jmeter.services.FileServer.readLine(FileServer.java:324) ~[ApacheJMeter_core.jar:5.1.1 r1855137]
    at org.apache.jmeter.services.FileServer.reserveFile(FileServer.java:272) ~[ApacheJMeter_core.jar:5.1.1 r1855137]

如有任何帮助,我们将不胜感激

【问题讨论】:

  • 您的问题解决了吗?我们面临相同的错误消息,但使用的是通过 params 提供的 .csv 文件。该文件在那里,jmeter 在一开始就检测到它。但是在加载时,我们得到了上面的神秘错误。你做了什么来解决你的问题吗?谢谢!

标签: jmeter


【解决方案1】:

文件 v2summaryreport 必须存在且可读

表示JMeter在给定位置下找不到CSV文件

您需要提供文件的相对路径或完整路径(在大多数情况下连同扩展名一起),所以我认为它应该类似于 v2summaryreport.txtv2summaryreport.jtl

还要注意Execution Order of JMeter test elements,因为Configuration Element CSV 数据集配置可能会在其他所有操作之前执行,因此包含结果的文件尚不存在。

使用动态 CSV 文件不是很受支持的用例,您可能需要考虑迁移到 __CSVRead() function,参见 How to Pick Different CSV Files at JMeter Runtime 文章以了解示例实现。

【讨论】:

  • 我尝试使用以下内容读取 csv:${__CSVRead(v2summaryreport.csv,1)} 但我收到此错误:2020-09-24 09:32:18,145 WARN o.a.j.f.CSVRead: Thread Group 3 -1 - 无效的列号:1 在第 0 行 java.lang.IndexOutOfBoundsException:索引:0,大小:0
【解决方案2】:

这是因为您提供的位置不正确,无法提取 CSV 文件。在开始运行脚本之前,您必须确保可以从该 CSV 文件中正确提取数据。

这里附上一个例子。

【讨论】:

  • 我已经用明确的路径尝试过这个,但我遇到了同样的问题。我使用的路径是:C:\Users\sfry\OneDrive\Documents\jmeter\apache-jmeter-5.1.1\bin\v2summaryreport.csv 我得到的错误是 2020-09-24 09:12:46,574 INFO o.a.j.s.FileServer :存储:C:\Users\sfry\OneDrive\Documents\jmeter\apache-jmeter-5.1.1\bin\v2summaryreport.csv 2020-09-24 09:12:46,574 错误 o.a.j.t.JMeterThread:测试失败! java.lang.IllegalArgumentException:无法读取文件 C:\Users\sfry\OneDrive\Documents\jmeter\apache-jmeter-5.1.1\bin\v2summaryreport.csv 的文件头行
  • CSV 的顶行是否包含列名?
  • 是的,所有列名都在 csv 中
  • 您可以删除它们并再次测试它们吗?有时会发生这种情况,因为这些列名不适合 CSV 其余部分的类型。
  • 并确保 CSV 文件中的数据之间没有空格,只有逗号。
猜你喜欢
  • 2023-04-08
  • 2022-11-16
  • 2018-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-28
  • 2017-01-03
  • 1970-01-01
相关资源
最近更新 更多