无法通过Jmeter中的beanshell断言采样器追加到文件中的下一行

无法通过Jmeter中的beanshell断言采样器追加到文件中的下一行,jmeter,beanshell,Jmeter,Beanshell,在我的JMeter脚本中有两个步骤。登录,然后再获取订单,在登录线程组中,我使用BeanShell断言来验证一些条件,一旦遇到错误,我就会将错误写入日志文件。因此,对于第一个线程,它正在正确地写入它,但是当它到达下一个断言时,它会覆盖相同的文件而不附加它 第一个断言: import org.apache.jmeter.assertions.AssertionResult; String failureMessage = ""; String successMessage = ""; String

在我的JMeter脚本中有两个步骤。登录,然后再获取订单,在登录线程组中,我使用BeanShell断言来验证一些条件,一旦遇到错误,我就会将错误写入日志文件。因此,对于第一个线程,它正在正确地写入它,但是当它到达下一个断言时,它会覆盖相同的文件而不附加它

第一个断言:

import org.apache.jmeter.assertions.AssertionResult;
String failureMessage = "";
String successMessage = "";
String ResCode =SampleResult.getResponseDataAsString();
if (!ResCode.contains("Admin") )
    {
    failureMessage = "Got Response Code" + ResCode;
    log.warn("Creation of a new record failed: Response code " + ResCode);
    AssertionResult result = new AssertionResult("Expected Response 200");
    result.setFailure(true);
    result.setFailureMessage(failureMessage);
    prev.addAssertionResult(result);
    prev.setSuccessful(false);
    SampleResult.setStartNextThreadLoop(true);
    }
else {
    successMessage = "Got Response Code" + ResCode;
    log.info("----->"+successMessage);
    FileOutputStream logfile = new FileOutputStream(vars.get("LogFile"));
    PrintStream printtoFile = new PrintStream(logfile); 
    printtoFile.println( successMessage );
    printtoFile.close();
    logfile.close();
    }
第二个断言:

import org.apache.jmeter.assertions.AssertionResult;
String failureOrderMessage = "";
String successOrderMessage = "";
OrderId = vars.get("workOrderId");
log.info("----->"+OrderId);

if (OrderId == null){
    failureOrderMessage = "The Order Id :"+OrderId;
    log.info("----->"+failureOrderMessage);
    FileOutputStream logfile = new FileOutputStream(vars.get("LogFile"));
    PrintStream printtoFile = new PrintStream(logfile); 
    printtoFile.println( failureOrderMessage );
    printtoFile.close();
    logfile.close();
}
else {
    successOrderMessage = "Getting few order id";
    log.info("----->"+successOrderMessage);
 }
上面的断言工作正常,但每次都会覆盖日志文件,但我想附加它。 第二

是否每次都需要声明上述代码段以写入日志文件?

您需要使用append标志创建:

 FileOutputStream logfile = new FileOutputStream(vars.get("LogFile"), true);
append-如果为true,则字节将写入文件的末尾而不是开头


它成功了,我还需要声明
PrintStream printtoFile=newprintstream(logfile);printtoFile.println(成功消息);printtoFile.close();logfile.close()每次我需要写入文件时,是否有一种方法可以声明一次并调用此方法?
 FileOutputStream logfile = new FileOutputStream(vars.get("LogFile"), true);