Как мне профилировать тест JUnit в проекте NetBeans Maven? - PullRequest
3 голосов
/ 17 ноября 2011

Я пытался сделать это, но это кажется невозможным, поскольку вы можете только профилировать основные методы.Я даже добавил основной метод к использованию теста, но он просто показывает время этого основного метода.: (

Я использую макеты и абстрактные тестовые примеры, поэтому я не могу преобразовать их в основной метод.

Есть идеи?

Ответы [ 4 ]

2 голосов
/ 17 ноября 2011

Вы можете использовать jvisualvm из установки java.

Этот инструмент может отслеживать и профилировать любое работающее Java-приложение.

1 голос
/ 17 ноября 2011

Если вы пытаетесь получить результаты производительности кода, который вы тестируете, это то, что обычно делается путем профилирования реального приложения во время его работы в реальной среде (контейнер, исполняемый файл и т. Д.). Таким образом, яЯ бы сказал, что попытка профилировать реальный код приложения с помощью модульных тестов - это неправильный способ сделать это, так как вы можете не получить точную информацию о производительности.Для этого есть несколько причин:

  • Взаимодействия с другими объектами, которые вы моделируете в модульных тестах, на самом деле занимают время и потребляют ресурсы, о которых вы не получаете информации о производительности.
  • Среда выполнения Java оптимизирует байт-код , пока он работает , так что производительность обычно со временем улучшается
  • Я уверен, что есть и другие;это то, что приходит ко мне перед кофе.

Если вместо этого вы на самом деле пытаетесь профилировать свои случаи модульного тестирования, мне придется спросить, почему вы хотите это сделать.До тех пор, пока они работают «достаточно быстро» (это субъективный термин, но «менее 10 минут», как правило, является хорошим показателем прокси), чтобы получить обратную связь от разработчиков о том, прошли они или нет, своевременно, это должно быть достаточно хорошим...

0 голосов
/ 28 февраля 2018

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

  • Запустить юнит-тест
  • Пока он работает, прикрепите профилировщик

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

0 голосов
/ 03 ноября 2014

Я бы порекомендовал использовать JMH + профилировщик (spf4j, регистратор полета)

пример того, как вы можете это сделать, вы можете увидеть по адресу: http://zolyfarkas.github.io/spf4j/xref-test/org/spf4j/JmhTest.html

Если вы используете jenkins с плагином jmh: ​​https://github.com/blackboard/jmh-jenkins Вы можете отслеживать свою производительность, и вы всегда сможете взглянуть на данные профилировщика для исследования.

...