jmeter .jtl日志文件到csv转换

时间:2015-08-07 03:10:42

标签: java regex csv jmeter

我尝试将jmeter .jtl文件转换为csv文件。  jtl文件的每一行都包含用逗号分隔的变量,就像在普通的csv文件中一样。 例如:a,b,c,d,e,f  但是,在某些行中,引号内有多个分隔符,如逗号(,)和逗号(",")。 例如:a,b," c,d",e,f 我可以通过读取jtl文件轻松解析逗号分隔值。但是当我在引号分隔符中遇到逗号时,通过代码无法生成有用的结果。 我试图使用java multi split,但问题仍然存在。

我的java代码如下:

try{
 BufferedReader reader = new BufferedReader(new InputStreamReader(new BufferedInputStream(new FileInputStream(new File("D:/apache-jmeter-2.11/apache-jmeter-2.11/bin/")))));
while((line = reader.readLine()) !=null){   
    String[] datas = line.split("[,\",\"]");
     p.println(datas[0] + "," + datas[5] + "," + datas[2] + "," + datas[1] + "," + datas[3] + "," + datas[8] + "," + datas[9]); 
}

我使用split来分割使用(,)和(",")。我如何重写代码以便解决问题。

3 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

对我而言,您正在寻找的是您可以使用的现有CSV处理库。我成功地使用OpenCSV来处理JMeter输出,但这显然只是众多可能选项之一。

答案 2 :(得分:0)

使用uniVocity-parsers阅读:

CsvParserSettings settings = new CsvParserSettings(); //many options to configure the format and the parser here. Check the tutorial
CsvParser parser = new CsvParser(settings);
List<String[]> allRows = parser.parseAll(
    new FileReader(new File("D:/apache-jmeter-2.11/apache-jmeter-2.11/bin/")));

披露:我是这个图书馆的作者。它是开源和免费的(Apache V2.0许可证)。