如何使用Jmeter

时间:2015-07-22 10:43:10

标签: performance csv jmeter jmeter-plugins beanshell

我希望我的Jmeter从一个位置读取多个csv文件,例如c:\ Jmeter \ file。

目前,如果我在'文件名'中提供特定的csv文件名。在CSV数据设置配置下,Jmeter识别文件和执行我的脚本。

我不想硬编码文件名,我希望jmeter从该位置自动读取。

我写过BeenShell PreProcessor(因为我找不到任何简单的解决方案),这个程序从位置读取列表中的所有csv文件并将它们存储在变量中。 ' VcsvFilename'

import java.io.File;

    File folder = new File("C:\\Intel\\CsvFiles");
    File[] listOfFiles = folder.listFiles();
    String[] desiredNamesOfListOfFiles = new String[listOfFiles.length];
    String strFileName;
    int intCounter=0;
    String count;
    int idx = 0 ;
    for (int i = 0; i < listOfFiles.length; i++) {
      File file = listOfFiles[i];
      if (file.isFile() && file.getName().endsWith(".csv")) {
        /* do somthing with content */
          System.out.println(" File Name is ~~~~~~~~~~~~~~~~~~ " + file.getName());
          desiredNamesOfListOfFiles[idx++] =  file.getName();
      } 
    }
    System.out.println(" Length of array is " + desiredNamesOfListOfFiles.length);
    for(int j = 0 ; j < idx ; j++){

     //   System.out.println(" File name inside array is " + desiredNamesOfListOfFiles[j]);
       // ;;vars.put("VcsvFilename",desiredNamesOfListOfFiles[j]);
        strFileName = strFileName + ";" +desiredNamesOfListOfFiles[j];
        intCounter++;
    }

    count=Integer.toString(intCounter);

    vars.put("VcsvFilename",strFileName);
    vars.put("FileCounter",count);

我无法在CSV数据配置下使用此变量。

有人有解决方法吗?

2 个答案:

答案 0 :(得分:0)

CSV数据集配置在JMeter启动期间初始化,因此您将无法将JMeter变量用作文件路径的一部分。

可能的解决方法是:

两个函数都支持多个输入文件

答案 1 :(得分:0)

CSV DataSet无论如何都无法读取多个CSV文件。

它不能使用变量,只能使用属性。

你为什么要这样做?

如果仅合并它们,那么选项是使用setupThreadGroup将CSV合并为1个文件,您将在CSV数据集中使用此文件