当前位置: 代码迷 >> java >> jmeter .jtl日志文件到CSV的转换
  详细解决方案

jmeter .jtl日志文件到CSV的转换

热度:43   发布时间:2023-07-25 19:23:06.0

我试图将jmeter .jtl文件转换为csv文件。 与普通的csv文件一样,jtl文件的每一行都包含用逗号分隔的变量。 例如:a,b,c,d,e,f但是,在某些行中有多个定界符,例如comma(,)和quotation(“,”)内的逗号。 例如: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来使用(,)和(“,”)进行拆分。 我应该如何重写代码,以便可以解决问题。

使用此库将为您处理:

阅读javadoc以了解如何指定格式:

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

使用读取以下内容:

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许可证)。