如何在jmeter中使用.csv文件的单元格值?

时间:2016-07-29 11:54:47

标签: java csv jmeter

我有一个.csv文件,其中包含员工姓名的多个条目。现在我想在jmeter中的jmx脚本中读取.csv文件。它应该是我的jmx脚本的每个线程从.csv文件中读取不同值的方式。然后我想在HTTP请求中使用这些单元格值。

我正在使用Bean Shell预处理器。但它对我没有帮助。下面是我为它编写的代码

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

CSVReader reader = new CSVReader(new FileReader(C:/Users/manoj/Downloads/View_All_names.csv));
String[] row;
String name;
while ((row = reader.readNext()) != null) 
            {
                            name = row[1];

            }

值“name”我想在我的HTTP请求中使用它.DO我必须在测试计划中提到这个属性“name”吗?

感谢任何帮助。

3 个答案:

答案 0 :(得分:1)

首先,您是否了解__CSVRead()功能?您应该能够在需要CSV文件值的位置直接使用它,而无需编写任何代码。

万一你出于任何原因仍然想要Beanshell。

  1. 您需要用引号
  2. 包围CSV文件的路径
  3. 您需要将结果值写入JMeter变量以供以后重用。
  4. 您从哪里获得上述代码?如果CSVReader代表来自ph-commons-6.2.4.jar的{​​{3}} - 您需要稍微改变一下,例如使用com.helger.commons.csv.CSVReader代替字符串数组:

    import com.helger.commons.csv.CSVReader;
    
    CSVReader reader = new CSVReader(new FileReader("C:/Users/manoj/Downloads/View_All_names.csv"));
    List row;
    String name;
    int counter = 1;
    
    while ((row = reader.readNext()) != null) {
      name = row.get(1).toString();
      vars.put("name_" + counter, name);
      counter++;
    }
    

    在Beanshell PreProcessor完成其工作后,您将能够访问变量值,如:

    • ${name_1}
    • ${name_2}
    • ${name_3}
  5. vars代表List类的实例,它提供对范围内JMeter变量的读/写访问。有关JMeter测试中Beanshell脚本的更多信息,请参阅JMeterVariables文章。

答案 1 :(得分:0)

您只需要放置一个CSV Data Set Config组件,它就会为您读取条目。每个线程(用户)的每一行。在组件中,您需要指定稍后将在测试计划中使用的变量名称,以及.csv文件的路径。

CSV Data Set Config

如果您将变量名称设置为“name”(没有引号),您将在要使用它的请求/采样器中使用$ {name}。

enter image description here

答案 2 :(得分:0)

从jMeter中的excel捕获列值的简单方法

只需在excel列中明智地插入数据,即水平插入所有数据并使用

${__CSVRead(filePath,ColNum)}