Как мне профилировать тесты maven на окнах с помощью JProfiler? - PullRequest
0 голосов
/ 01 мая 2018

Я пробовал это

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>
      <excludedGroups>com.my.test.IntegrationTest</excludedGroups>
      <argLine>-agentpath:C:\Program Files\jprofiler10\bin\windows-x64\jprofilerti.dll=port=8849,nowait</argLine>
    </configuration>
  </plugin>

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-failsafe-plugin</artifactId>
    <configuration>
      <groups>com.my.test.IntegrationTest</groups>
      <argLine>-agentpath:C:\Program/ Files\jprofiler10\bin\windows-x64\jprofilerti.dll=port=8849,nowait</argLine>
    </configuration>
    <executions>

, что приводит к

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.18.1:test (default-test) on project my-util: Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.18.1:test failed: The forked VM terminated without properly saying goodbye. VM crash or System.exit called?
[ERROR] Command was cmd.exe /X /C ""C:\Program Files\Java\jdk1.8.0_162\jre\bin\java" -agentpath:C:\Program Files\jprofiler10\bin\windows-x64\jprofilerti.dll=port=8849,nowait -jar C:\Users\xeno\IdeaProjects\my-util\target\surefire\surefirebooter6221605500745834451.jar C:\Users\xeno\IdeaProjects\my-util\target\surefire\surefire4500791091163286071tmp C:\Users\xeno\IdeaProjects\my-util\target\surefire\surefire_07989865501871806496tmp"

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

1 Ответ

0 голосов
/ 01 мая 2018

Проходящий

-agentpath:<path to jprofilerti.dll>=port=8849,nowait

просто загрузит агент профилирования, но не выполнит запись. В вашем случае есть другая проблема, потому что JVM не запускается, скорее всего, пробел в C:\Program Files разделяет аргумент на два аргумента. Я бы порекомендовал установить JProfiler в путь без пробелов.

Чтобы записать данные и сохранить снимок, вы должны настроить автономное профилирование . Аргумент выглядит так:

-agentpath:<path to jprofilerti.dll>=port=8849,offline,id=<session ID>

где идентификатор сеанса берется из правого верхнего угла вкладки «Настройки приложения» в диалоговом окне настроек сеанса. В этом сеансе вы настраиваете триггер «Запуск JVM» для начала записи данных и триггер «Выход JVM» для сохранения снимка в конце.

...