【问题标题】:Jmeter - Reread CSV fileJmeter - 重新读取 CSV 文件
【发布时间】:2013-10-01 13:05:50
【问题描述】:

在我的项目中,我需要在从开始到 EOF 的每个循环迭代中读取 CSV 文件。当第二个循环找不到文件的开头时会出现问题。它总是将 EOF 设置为文件变量。

场景:

在 jmeter 中我分配了 1 个线程和 10 个循环计数。

我的要求是,我想在每次循环迭代中读取 CSV 文件的所有行。

例如: 在 csv 文件中,我声明如下:

1360

1363

1468

在执行期间,第一次循环计数应始终读取从 1360 到 1468 的数据,然后第二次迭代应再次读取整个数据。

【问题讨论】:

    标签: csv jmeter performance-testing


    【解决方案1】:

    我有点好奇,你是将整个内容读入一个变量还是不同的变量?我希望看到你的脚本来更好地回答

    如果您使用 CSV 数据集配置,则需要确保“在 EOF 上循环”设置为 True。

    【讨论】:

      【解决方案2】:

      当第二个循环找不到文件的开头时会出现问题。 它总是将 EOF 设置为文件变量。 ---我不明白当您的循环计数为 10 且 csv 中的值大于 1 时,它是如何始终获得 EOF。

      我的建议是在线程组中使用 beanshell 采样器(1 个用户 1 次迭代)。并将所有值传递给 prop 变量。

      可能的代码是:

      //ExtrenalCSVTd=path of your csv file
      
      LineNumberReader lineReader = new LineNumberReader(new FileReader(new File(vars.get("ExtrenalCSVTd"))));
      
      int count=0;
      
      while((line=lineReader.readLine())!= null)
      {
      
      String[] ExtrenalCSVTd = line.split(",");
      props.put("ContentFirstColumn_"+count,ExtrenalCSVTd[0]);
      props.put("COntentSecondColumn_"+count,ExtrenalCSVTd[1]);
      /*
      .
      .
      .
      */
      count++;
      }
      

      使用jp@gc - Set Variables Action 并使用Counter=${__BeanShell(vars.getIteration();,)} 获取当前循环计数(线程)

      那么你可以使用contentName=${__P(ContentFirstColumn_${Counter},)}

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-01-16
        • 2018-11-18
        • 2019-09-28
        • 1970-01-01
        • 2018-11-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多