我试图将jmeter.jtl文件转换为CSV文件。jtl文件的每一行都包含用逗号分隔的变量,就像普通csv文件一样。举例来说:a,B,c,d,e,f然而,在某些行中有多个分隔符,如逗号(,)和引号内的逗号(“,”)。举例来说:a,B,“c,d”,e,f我可以通过阅读jtl文件轻松解析逗号分隔值。但当我遇到逗号内的引号分隔符时,按代码未能生成有用的结果.我尝试使用java多分割,但问题仍然存在。
我的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来使用(,)和(“,”)进行拆分。我该如何重写代码才能解决这个问题。
4条答案
按热度按时间yvt65v4c1#
使用uniVocity-parsers读取以下内容:
声明:我是这个图书馆的作者。它是开源和免费的(Apache V2.0许可证)。
ryhaxcpt2#
使用这个库,它将为您处理这个问题:
阅读javadoc以了解如何指定格式:
wnavrhmk3#
对我来说,你正在寻找的是一个现有的CSV处理库,你可以利用。我使用OpenCSV成功地处理了JMeter输出,但这显然只是许多可能的选项之一。
uqzxnwby4#
JTL files可以采用两种不同的格式,CSV 或 XML。绝大多数用例都使用CSV格式,这就是您正在描述的格式。
要将JTL文件转换为CSV文件,只需将文件扩展名更改为
*.csv
即可。因此,可以使用this article中描述的普通电子表格应用程序(* 例如 *,Excel)来编辑和分析JTL文件。如果您希望以编程方式分析JTL文件并将其视为CSV文件,则可以使用任何CSV处理库来完成。在对这个问题的其他答复中有几个例子。使用C#/.Net的另一种方法是引用
Microsoft.VisualBasic
命名空间并使用TextFieldParser
:有关
TextFieldParser
的使用的更多详细信息可以在official Microsoft documentation page上找到。