2016-12-21 4 views
3

После запуска теста загрузки Jmeter генерирует результат на «summary.csv».
Некоторые ссылки в этом файле выглядит следующим образом:Как отредактировать файл summary.csv после запуска загрузки jmeter

1482255989405,3359,POST ...users/G0356GM7QOITIMGA/... 
1482255989479,3310,POST ...users/HRC50JG3T524N9RN/... 
1482255989488,3354,POST ...users/54QEGZB54BEWOCJJ/... 

Где "... пользователи/G0356GM7QOITIMGA/..." - его столбец URL.
После того, что я пытаюсь генерировать JMeter-отчет с помощью этой команды:

jmeter -g summary.csv -o report 

Howewer этой акции выбросить из памяти исключения (из-за большого количества адресов).
Поэтому я решил изменить summary.csv в Teardown Group Thread и заменить все ИД "someID" строку, используя BeanShell Sampler:

import java.io.*; 
import org.apache.jmeter.services.FileServer; 
try { 
     String sep = System.getProperty("line.separator"); 
     String summaryFileDirPath = FileServer.getFileServer().getBaseDir() + File.separator; 
     String summaryFilePath = summaryFileDirPath + "summary.csv"; 
     log.info("read " + summaryFilePath); 
     File file = new File(summaryFilePath); 
     BufferedReader reader = new BufferedReader(new FileReader(file)); 
     String line; 
     String text = ""; 
     while ((line = reader.readLine()) != null) { 
      text += line + sep; 
     } 
     reader.close(); 
     log.info(summaryFilePath); 
     file.delete(); 

     FileWriter writer = new FileWriter(summaryFileDirPath + "summary.csv", false); 
     writer.write(text.replaceAll("users/[A-Z0-9]*/", "users/EUCI/")); 
     writer.close(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

Результат:
summary.csv screen

Походит Jmeter добавляет несколько строк после tearDown Группа темы завершает работу.
Как отредактировать файл summary.csv после запуска теста, используя только скрипт jmeter?
PS: Мне нужно собрать результат только в summary.csv

+0

Подсказки: форматирование вопросы. Пожалуйста, потратьте 1 минуту, чтобы правильно отложить исходный код. Вы хотите, чтобы мы тратили свое время, чтобы помочь вам ... поэтому, пожалуйста, сделайте это максимально простым и прямым. – GhostCat

+0

спасибо за ваш комментарий. Я отформатировал сценарий. –

ответ

1

Существует JMeter недвижимости - jmeter.save.saveservice.autoflush, скорее всего, вы страдаете от его стоимости false

# AutoFlush on each line written in XML or CSV output 
# Setting this to true will result in less test results data loss in case of Crash 
# but with impact on performances, particularly for intensive tests (low or no pauses) 
# Since JMeter 2.10, this is false by default 
#jmeter.save.saveservice.autoflush=false 

по умолчанию можно переопределить значение в наименее 2 способами:

  1. Добавьте следующую строку в user.properties файл:

    jmeter.save.saveservice.autoflush=true 
    
  2. Pass его JMeter с помощью -J аргумента командной строки, как:

    jmeter -Jjmeter.save.saveservice.autoflush=true -n -t .... 
    

См Apache JMeter Properties Customization Guide статьи исчерпывающей информации о JMeter свойствах и способах работы с ними

+0

Спасибо за ваш ответ. Это помогло мне. У меня есть еще один вопрос: - Если можно отключить «BeanShell Sampler», регистрирующийся в summary.csv? [Тема для этого вопроса] (http://stackoverflow.com/questions/41300570/how-can-i-disable-writing-beanshell-log-row-in-jmeter-report-summary-csv-file) –