Java не хватает памяти вместе с ошибками HTMLUnit в Jmeter
Я действительно новичок здесь и на Java в целом, так как я всего лишь тестер QA. Итак, я постараюсь сделать это кратко, я нашел решение одной из проблем, с которыми мы столкнулись при тестировании веб-сайта, тестирование веб-сайта AJAX с использованием Jmeter
, Мне удалось получить Jmeter
запустить Junit
запрос записан с использованием Selenium HTMLunit
после компиляции файла Jar необходимо использовать Maven для того, чтобы попробовать и загрузить тестовый сайт.
Все работает нормально, пока я не доберусь до некоторого количества "достойных нагрузки" потоков (у нас достаточно большая компания, у которой есть несколько машин, так что это не должно быть проблемой, если каждая может обрабатывать 200-300 запросов), но я получаю некоторые ошибки в Jmeter
CMD вместе с CSS
ошибки в Jmeter
Ошибка консоли (они могут быть не связаны, но появляются одновременно) после установки потоков на 50:
java.lang.OutOfMemoryError: Java heap space
Dumping heap to java_pid6832.hprof ...
Heap dump file created [817281280 bytes in 13.116 secs]
Logging Error: Unknown error writing event.
java.lang.OutOfMemoryError: GC overhead limit exceeded
Logging Error: Unknown error writing event.
java.lang.OutOfMemoryError: GC overhead limit exceeded
Logging Error: Unknown error writing event.
java.lang.OutOfMemoryError: GC overhead limit exceeded
Logging Error: Unknown error writing event.
java.lang.OutOfMemoryError: GC overhead limit exceeded
Logging Error: Unknown error writing event.
java.lang.OutOfMemoryError: GC overhead limit exceeded
2013/02/04 14:01:10 WARN - com.gargoylesoftware.htmlunit.DefaultCssErrorHandler: CSS warning: 'Website URL+CSS PATH' [2447:70] Ignoring the whole rule.
2013/02/04 14:01:10 WARN - com.gargoylesoftware.htmlunit.DefaultCssErrorHandler: CSS error: 'Website URL+CSS PATH' [1684:57] Error in pseudo class or element. (Invalid token "2". Was expecting one of: <S>, <IDENT>, ")".)
Это ошибки, которые я получаю, полагаю, мне тяжело получать запросы (так как я знаю, htmlunit
действует так, как если бы это был браузер, и отправка 100 запросов одновременно с использованием этого браузера может потребовать слишком много моих текущих ресурсов)
Итак, вопрос таков: я просто хотел убедиться, что я был прав в оценке проблем, с которыми я сталкиваюсь, а также подумать, не делал ли кто-то что-то подобное раньше и, может быть, кто-то нашел лучший способ справиться с такого рода тестами?
1 ответ
Скорее всего, вы используете JMeter в режиме графического интерфейса для тестирования нагрузки, который является анти-паттерном.
Я предполагаю, что у вас есть слушатель View Results Tree в вашем плане, так что этот компонент заканчивает накапливанием всех результатов и заканчивается OOM .
Начиная с последней версии JMeter, сохраняются только 500 результатов последнего образца.
Поэтому обновитесь до JMeter 4.0 или 5.0 И используйте режим без графического интерфейса:
jmeter -n -t testplan.jmx -l results.csv -e -o report_folder