我正在准备一个BeanShell后处理器脚本,以将数据写入Jmeter中的CSV文件。
这是我的代码
try {
File file = new File("samplefile.csv");
FileWriter outputfile = new FileWriter(file, true);
CSVWriter writer = new CSVWriter(outputfile);
BufferedReader csvReader = new BufferedReader(new FileReader(file));
List list = new ArrayList();
String[] header={"no"};
String[] id = {"${myNo}"};
list.add(header);
list.add(id);
writer.writeAll(list);
writer.close();
}
catch (IOException e) {
e.printStackTrace();
}
在这里,我只想在csv文件的第一行中写入一次header。但是每次执行脚本时,都会为每个示例用户输入header。在这里,我使用openCSV jar来读/写数据
我也尝试了apache commons csv jar,但我无法执行代码,我得到了一个错误,这里是apache common csv的代码
try (
BufferedWriter writer = Files.newBufferedWriter(Paths.get("sample.csv"));
CSVPrinter csvPrinter = new CSVPrinter(writer, CSVFormat.DEFAULT
.withHeader("NO");
) {
csvPrinter.printRecord("${myNo}");
csvPrinter.flush();
}
错误o.a.j.u. BeanShell解释器:调用bsh方法时出错:eval In文件:内联评估:“导入java.io.*;导入java实用程序 ; o.文件导入java.ni.文件; import java.ni . . .''在第8行第10列遇到“(“。
警告o.a.j.e. BeanShell后处理器:BeanShell脚本中的问题:org.apache.jorphan.util.JMeterException:调用bsh方法时出错:eval In文件:内联评估:“导入java.io.;导入java实用程序 ; o.文件导入java.ni.文件; import java.ni . . .''在第8行第10列遇到“(“。
错误o.a.j.u. BeanShell解释器:调用bsh方法时出错:eval In文件:内联评估:“导入java.io.;导入java实用程序 ; o.文件导入java.ni.文件; import java.ni . . .''在第8行第10列遇到“(“。
警告o.a.j.e. BeanShell后处理器:BeanShell脚本中的问题:org.apache.jorphan.util.JMeterException:调用bsh方法时出错:eval In文件:内联评估:“导入java.io.;导入java实用程序 *; o.文件导入java.ni.文件; import java.ni . . .''在第8行第10列遇到“(“。
我将感激任何帮助或建议。
谢谢
1条答案
按热度按时间093gszye1#
1.“您的”代码将无法工作,因为它没有正确的try block语法,正确的语法如下:
1.如果你想只写一次头文件,可以这样做:
或者更好的方法是在setUp Thread Group中的某个地方编写头文件,因为我不知道您有多少用户,以及加速设置是什么
1.从JMeter 3.1开始,建议使用JSR223测试元素和Groovy语言编写脚本,因此考虑迁移是一个好主意。
1.在并发用户的情况下,您的方法将停止工作,由于race conditions多个用户将在同一时间写入同一个文件,导致数据损坏或丢失,最好使用Flexbile File Writer