запись данных в CSV в Jmeter и повторное использование одного и того же CSV каждый раз - PullRequest
0 голосов
/ 14 марта 2020

Мне приходится сканировать данные о ценах на некоторых сайтах каждый день, и я хочу хранить данные за каждый день в одном и том же CSV-файле, но в другом столбце с датой вверху. Я использую файл .csv для записи данных, но каждый день они перезаписываются существующие данные и не меняя столбец. Я хочу записать данные, как показано на изображении: введите описание изображения здесь

1 Ответ

0 голосов
/ 16 марта 2020

Я не думаю, что CSV - правильный формат для вас, лучше go для XLSX и Apache POI для создания / обновления файла Excel.

  1. Добавить tika-app.jar в JMeter Classpath
  2. Перезапустить JMeter, чтобы взять .jar вверх
  3. Когда вам нужно создать / обновить файл Excel - добавьте соответствующий Тестовый элемент JSR223 и используйте следующий ссылочный код:

    import org.apache.poi.ss.usermodel.Cell
    import org.apache.poi.ss.usermodel.Row
    import org.apache.poi.xssf.usermodel.XSSFRow
    import org.apache.poi.xssf.usermodel.XSSFSheet
    import org.apache.poi.xssf.usermodel.XSSFWorkbook
    
    XSSFWorkbook workbook
    XSSFSheet sheet
    XSSFRow row
    
    File excelFile = new File("/path/to/your/file.xlsx")
    if (!excelFile.exists()) {
        workbook = new XSSFWorkbook()
        sheet = workbook.createSheet()
        row = sheet.createRow(0)
        Cell firstCell = row.createCell(0)
        firstCell.setCellValue(new Date().format("dd/MM/yyyy"))
        Row row2 = sheet.createRow(1)
        Cell secondsCell = row2.createCell(0)
        secondsCell.setCellValue("a")
        //etc
        workbook.write(new FileOutputStream(excelFile))
    
    } else {
        FileInputStream inputStream = new FileInputStream(excelFile)
        workbook = new XSSFWorkbook(inputStream)
        sheet = workbook.getSheetAt(0)
        row = sheet.getRow(0)
        Cell firstCell = row.createCell(row.getLastCellNum())
        firstCell.setCellValue(new Date().format("dd/MM/yyyy"))
        Row row2 = sheet.getRow(1)
        Cell secondCell = row2.createCell(row2.getLastCellNum())
        secondCell.setCellValue("s")
        //etc
        inputStream.close()
        FileOutputStream outputStream = new FileOutputStream(excelFile)
        workbook.write(outputStream)
        outputStream.close()
    
    }
    

Дополнительная информация:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...