Невозможно запустить java код из Eclipse в Jmeter, используя Groovy - PullRequest
0 голосов
/ 30 января 2020

Приведенный ниже код печатает содержимое из файла excel (пробовал в eclipse), но я не могу запустить его в Jmeter 3.1, используя Groovy.

I выдает ошибку:

Проблема в сценарии JSR223. Образец JSR223, сообщение: javax.script.ScriptException: org.codehaus. groovy .control.MultipleCompilationErrorsException: сбой при запуске

Это мой код:

public static void main (String args[]) throws IOException
            {  
              GetExcelTableInto2DArrayListString("C:\\Users\\val1\\Desktop\\Book1.xlsx", true);


             }


            public static void GetExcelTableInto2DArrayListString(String excelFile, boolean debug) throws IOException{

            ArrayList<String> OUT = new ArrayList<String>();  
            File myFile = new File(excelFile); 
            FileInputStream fis = null;

                fis = new FileInputStream(myFile);

                String columnWanted = "PhysicalIDs";
                Integer columnNo = null;

            XSSFWorkbook myWorkBook = null;

                myWorkBook = new XSSFWorkbook (fis);


            // Return first sheet from the XLSX workbook 
            XSSFSheet mySheet = myWorkBook.getSheetAt(0); 

            // Get iterator to all the rows in current sheet 

            List<Cell> cells = new ArrayList<Cell>();

                Row firstRow = mySheet.getRow(0);   //rowIterator.next();


                for(Cell cell:firstRow){
                    if (cell.getStringCellValue().equals(columnWanted)){
                        columnNo = cell.getColumnIndex();
                    }
                }
                System.out.println(columnNo);
                DataFormatter formatter = new DataFormatter(Locale.US);

                if (columnNo != null){
                for (Row row : mySheet) {
                   Cell c = row.getCell(columnNo);
                   System.out.println(formatter.formatCellValue(c));
                   if (c == null) {
                      // Nothing in the cell in this row, skip it
                   } else {
                      cells.add(c);
                   }
                }
                }else{
                    System.out.println("could not find column " + columnWanted + " in first row of " + myFile.toString());
                }


            }

1 Ответ

0 голосов
/ 30 января 2020

Я сильно сомневаюсь, что ваш код работает в затмении (чем бы он ни был) и где-либо еще, потому что эта строка:

public static void main (String args[])

не синтаксически верна ни в Java, ни в Groovy.

«Хорошее» объявление точки входа (хотя это не требуется для Groovy сценариев) будет:

public static void main(String[] args)

Полный код на всякий случай:

import org.apache.poi.ss.usermodel.Cell
import org.apache.poi.ss.usermodel.DataFormatter
import org.apache.poi.ss.usermodel.Row
import org.apache.poi.xssf.usermodel.XSSFSheet
import org.apache.poi.xssf.usermodel.XSSFWorkbook

public static void main(String[] args) throws IOException {
    GetExcelTableInto2DArrayListString("C:\\Users\\val1\\Desktop\\Book1.xlsx", true);


}


public static void GetExcelTableInto2DArrayListString(String excelFile, boolean debug) throws IOException {

    ArrayList<String> OUT = new ArrayList<String>();
    File myFile = new File(excelFile);
    FileInputStream fis = null;

    fis = new FileInputStream(myFile);

    String columnWanted = "PhysicalIDs";
    Integer columnNo = null;

    XSSFWorkbook myWorkBook = null;

    myWorkBook = new XSSFWorkbook(fis);


    // Return first sheet from the XLSX workbook
    XSSFSheet mySheet = myWorkBook.getSheetAt(0);

    // Get iterator to all the rows in current sheet

    List<Cell> cells = new ArrayList<Cell>();

    Row firstRow = mySheet.getRow(0);   //rowIterator.next();


    for (Cell cell : firstRow) {
        if (cell.getStringCellValue().equals(columnWanted)) {
            columnNo = cell.getColumnIndex();
        }
    }
    System.out.println(columnNo);
    DataFormatter formatter = new DataFormatter(Locale.US);

    if (columnNo != null) {
        for (Row row : mySheet) {
            Cell c = row.getCell(columnNo);
            System.out.println(formatter.formatCellValue(c));
            if (c == null) {
                // Nothing in the cell in this row, skip it
            } else {
                cells.add(c);
            }
        }
    } else {
        System.out.println("could not find column " + columnWanted + " in first row of " + myFile.toString());
    }


}

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

...