Jmeter 和 Filewriter - 在文件名中添加日期 + 时间戳

Jmeter and Filewriter - adding a date + timestamp to the filename

我创建了一个 jmeter,用于在我的网站上下订单并记录订单状态和确认编号。预订订单后,我使用 BeanShell Post 处理器将提取的变量打印到文件中。我真的很想在文件名中添加一个日期,但我一直没找到办法。

这就是我的 Bean Shell Post 处理器的样子:

FileWriter fstream = new FileWriter("C:\JMeter\Results\log.csv",true);
BufferedWriter out = new BufferedWriter(fstream);
out.write(vars.get("scriptName"));
out.write(System.getProperty("line.separator"));
out.write("STATUS: " + vars.get("status"));
out.write(System.getProperty("line.separator"));
out.write("Confirmation Number: " + vars.get("ConfirmationNumber"));
out.write(System.getProperty("line.separator"));
out.write("");
out.write(System.getProperty("line.separator"));
out.write("");
out.close();
fstream.close();

我试过在文件名中插入变量,但我怀疑我做错了,因为甚至没有创建文件。

完全免责声明(鉴于我上面的示例代码,这可能不是必需的):我不是代码专家,所以请原谅伪劣代码。

提前致谢。

您可以在开头设置一个 属性,稍后您可以将其附加到您的文件名中。

${__P(UNIQUEID,${__time(YMDHMS)})}

然后你可以把你的行改成下面这样

    FileWriter fstream = new FileWriter(vars.get("CWD") + "/JMeter/results/log${UNIQUEID}.csv", true);

在上面的代码中,CWD 是我在开始时设置的另一个变量,它指向启动 Jmeter 的当前目录。

import org.apache.jmeter.services.FileServer; 

String sCWd = new String(FileServer.getFileServer().getBaseDir());
log.info("CWDString=" + sCWd.replace("\", "/"));
vars.put("CWD", sCWd.replace("\\", "/"));