Невозможно добавить следующую строку в файле с помощью сэмплера утверждений бобовой оболочки в Jmeter - PullRequest
1 голос
/ 14 марта 2019

В моем скрипте JMeter есть 2 шага.Вход и второе получение заказов, внутри группы потоков входа в систему я использую утверждение оболочки bean для проверки нескольких условий, и как только я сталкиваюсь с ошибкой, я записываю ошибку в файл журнала.Таким образом, для первого потока, он пишет это правильно, но когда он достигает следующего утверждения, он перезаписывает тот же файл, не добавляя его.

Первое утверждение:

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);
 }

Вышеупомянутое утверждение работает нормально, но каждый раз, когда оно перезаписывает файл журнала, но я хочу добавить его.Второй

FileOutputStream logfile = new FileOutputStream(vars.get("LogFile"));
PrintStream printtoFile = new PrintStream(logfile); 
printtoFile.println( successMessage );
printtoFile.close();
logfile.close();

Нужно ли каждый раз объявлять приведенный выше фрагмент кода для записи в файл журнала?

1 Ответ

1 голос
/ 14 марта 2019

Вам необходимо создать FileOutputStream с флагом добавления:

 FileOutputStream logfile = new FileOutputStream(vars.get("LogFile"), true);

append - если true, тогда байты будут записаны в конец файла, а не в начало

...