java.lang.OutOfMemoryError: пространство кучи Java - Appium - TestNG Suite

Мы наблюдаем исключение пространства кучи Java при выполнении тестовых сценариев Appium Android на компьютере с Windows. У нас есть тестовое чтение листа данных с использованием Apache POI. До 11-го набора сценариев работает нормально, начиная с 12-го сценария, наблюдается исключение пространства кучи Java.

Я увеличил кучу и пространство prem enter code here в переменной системной среды и конфигурации запуска TestNG в Eclipse. Иногда нет проблем, иногда возникает исключение пространства кучи Java.

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

Код, который я использовал:

File strExecutionConfigFile = new File(
            strImportedExecutionConfigFilePath);

try {
        strInputExecutionConfigFile = new FileInputStream(
                strExecutionConfigFile);
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    try {
        objExecutionConfigWKB = new XSSFWorkbook(
                strInputExecutionConfigFile);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

Я вижу, что формат чтения XSSF будет потреблять мало памяти. Может предоставить код на это.

Вы можете получить доступ к ссылке ниже для исключения пространства кучи Java

https://app.box.com/s/9t3or72lk44liolz8x22n9s0pk2klrna


person Kiran Edupuganti    schedule 28.05.2015    source источник


Ответы (1)


Вам нужно будет проверить дамп кучи. Добавьте следующие аргументы виртуальной машины:

-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/some/location

В следующий раз, когда вы получите OOME, будет выведено что-то вроде следующего.

java_pid27643.hprof

Затем используйте jvisualvm для загрузки динамического дампа. Команда в линуксе:

$ jvisualvm &

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

person Chris Ritchie    schedule 28.05.2015