Какой плагин maven должен использоваться для JMeter? jmeter-maven-plugin или chronos-jmeter-maven-plugin?

Мне нужно настроить тесты производительности, которые запускаются автоматически с помощью CI-системы. Для этого я хочу использовать JMeter из-за некоторых сценариев, и опыт уже существует, и я хочу объединить его с Maven.

Во время моего исследования для разумного плагина я обнаружил, что существуют два плагина:

Какой из них лучше использовать? Оба, похоже, в настоящее время поддерживаются и находятся в стадии разработки. Есть ли опыт в этом? Даже конфигурация аналогична.

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

Ответ 1

Я еще не использовал файлы .jmx с maven и, в частности, те плагины, которые вы упомянули.

Но я могу думать о том, как это сделать, если мне это нужно.

Итак, рассмотрите это, вы можете выполнить тест jmeter в режиме gui.

  • Создайте оболочку script, которая выполнит тест jmeter в режиме gui, например (jmeter_exe.sh):

$JMETER_HOME/bin/jmeter.sh -n -t MY_LOAD_TEST.jmx -l resultFile.jtl

Итак, это выполнит данный script и сохранит результаты в файле .jtl, вы можете использовать его для отображения результатов теста, возможно, this post будет полезен для вас, пока он не работает.

Сделаем первый шаг.

2. Тогда вы можете создать каталог scripts в корне вашего проекта. Чем вы можете поместить это в свой pom.xml:

<plugin>
  <artifactId>exec-maven-plugin</artifactId>
  <groupId>org.codehaus.mojo</groupId>
  <executions>
    <execution>
      <id>Run load Test</id>
      <phase>generate-sources</phase>
      <goals>
        <goal>exec</goal>
      </goals>
      <configuration>
        <executable>${basedir}/scripts/jmeter_exe.sh</executable>
      </configuration>
    </execution>
  </executions>
</plugin>

И ваш тест выполняется во время фазы источников-источников. Это могло быть проще с плагинами, которые вы упомянули, но я не знаю об этом, вот что мне пришло в голову.

Ответ 2

Использовать jmeter-maven-plugin: http://wiki.apache.org/jmeter/JMeterMavenPlugin.

Это де-факто один и (как упоминалось выше в @Ardesco), он не требует ничего, чтобы быть установленным, что дает вам абстракцию, на которой установлен исполняемый файл JMeter, и все эти проблемы...

Ответ 3

Слово предупреждения в плагине apache (lazerycode):

  • Он подавляет вывод JMeter по умолчанию, добавляет следующие параметры конфигурации, чтобы предотвратить это:
<configuration>  
    <suppressJMeterOutput>false</suppressJMeterOutput>  
    <!-- to override debug logging from the plugin (although also in jmeter.properties) -->  
    <overrideRootLogLevel>debug</overrideRootLogLevel>  
    <jmeterLogLevel>DEBUG</jmeterLogLevel>  
</configuration>
  • Глядя на источник (версии 1.8.1), кажется, что -Xms и Xmx ограничены 512

  • Плагин проглатывает исключения, поэтому ваши тесты могут потерпеть неудачу, но вы не знаете, почему. Похоже, что они только что завершили, но не предоставили результаты.

  • jmeter mojo запускает jmeter как новый java-процесс, но не предоставляет возможности предоставить какие-либо аргументы для этого выполнения. Поэтому, если исключения проглатываются (см. Выше), и регистрация недостаточно (что может быть не так), непросто отлаживать процесс, чтобы выжать из строя то, что неправильно. Мы (мой коллега) добавили отладочные аргументы в выполнение процесса и отладили вызов jmeter, чтобы узнать.

  • вы получаете информативный вывод, запускающий jmeter непосредственно для целей dev. Я бы сказал, что это еще более информативно в выходе интерфейса jmeter.

Я не использовал ум хронов.

Ответ 4

JMeter Maven Plugin от @Ardesco обновляется каждый раз, когда выпущена версия JMeter. Он очень хорошо документирован и отлично работает.

Он легко настраивается и позволяет легко добавлять плагины, такие как JMeter-Plugins или коммерческие плагины, до тех пор, пока требуются библиотеки.

Вы можете прочитать полный блог, показывающий установку для старой версии 1.1.10:

Для более новой версии 2.5.1 (по состоянию на ноябрь 2017 года) убедитесь, что вы читаете документацию: