【问题标题】:JMeter CSV Data Set doesn't take the values of the first columnJMeter CSV 数据集不采用第一列的值
【发布时间】:2019-04-09 13:06:16
【问题描述】:

我正在使用 JMeter 5.1.1。

我有一个类似这样的 CSV 文件

当我像这样调用 HTTP 请求时

我明白了

Jmeter 不取值,只是将变量的名称传递给 URI。

但是,如果我通过输入 ${CustomerParam} 来获取第二列 CustomerParam,那么 JMeter 将获取值(而不是变量的名称)。

我想知道如何获取第一列的值?

谢谢。

【问题讨论】:

  • 在 CSV 数据集配置中,在变量名称中添加 CustomerID、CustomerParam。还将忽略第一行更改为 true
  • 我看到了类似的问题,只有我在 csv 中的第一列已解决,其余列未定义。好吧,实际上 Debug Sampler 显示了所有列,但在 BeanShell 采样器或 JDBC 采样器中,只有第一列被解析!!!

标签: jmeter


【解决方案1】:

我找到了根本原因。 使用最新的 Microsoft Excel 365 创建 CSV 文件时,将其另存为 CSV,而不是 CSV UTF-8。

当我使用 CSV 保存文件时,JMeter 工作得非常好。但是当我使用 CSV UTF-8 保存它时,我之前描述的问题确实出现了。

【讨论】:

  • 这也帮不了我
【解决方案2】:

如果变量引用如下:

${VARIABLE}

如果引用了未定义的函数或变量,JMeter 不会报告/记录错误 - 引用原样返回。例如,如果 UNDEF 未定义为变量,则 ${UNDEF} 的值为 ${UNDEF}。

在您的 CSV 数据集配置中输入变量名称,如下所示(如果您的 CSV 数据集看起来正好在第一行中变量名称的上方):

或者,您可以从 CSV 文件的第一行中删除变量名,然后进行如下配置:

【讨论】:

  • 谢谢贾汉。我尝试将 ignore first line 更改为 true 和 false ,直到看到问题为止。
【解决方案3】:

我无法使用相同的 CSV Data Set 配置重现您的问题:

变量已被读取的证据(假设Debug Sampler and View Results Tree listener combination

所以请仔细检查以下内容:

  1. 您的 CSV 文件完整性,因为它可能是数据本身的问题,即如果开头有 BOM - 您必须将其删除,因为 BOM 将添加到第一个变量名称(使用上述调试采样器和查看结果树侦听器以验证定义了哪些变量)
  2. CSV 文件操作系统存在问题(即位置或文件permission issue 中的拼写错误)。通常,JMeter 应该报告与读取 jmeter.log 中的 CSV 文件失败有关的任何错误

【讨论】:

  • 谢谢@Dmitri。如果在您的 CSV 中有 2 列 CustomerIDCustomerParam ,但是当您运行 API 时,您只使用 1 列(在这种情况下,第一列 CustomerID ,第二列在 CSV 中但未使用) ,你能重现这个问题吗?谢谢。
  • 我检查了 jmeter log ,它可以读取 CSV ,所以读取 CSV 不是问题。事实上,如果我们在 CSV 中有 2 列,并且仅在调用 API 时使用第二列,那么一切都很好……没问题。然后我尝试通过仅包含 1 列并在我的 API 调用中使用该列来修改 CSV,然后我开始看到相同的问题 ?CustomerID=${CustomerID} 我仔细检查了 CSV,变量名 CustomerID 前面没有任何内容: (
猜你喜欢
  • 1970-01-01
  • 2019-08-06
  • 2016-01-30
  • 1970-01-01
  • 2018-11-10
  • 1970-01-01
  • 2015-09-24
  • 1970-01-01
  • 2018-04-10
相关资源
最近更新 更多