Как настроить плагин Jmeter Maven для создания панели отчетов Jmeter 3.0
Я не могу сгенерировать панель инструментов отчета для Jmeter 3.0 с помощью Jmeter-maven-plugin версии 2.0.3. Я добавил и добавил свойства jmeter.save.saveservice в свой pom в разделе конфигурации в плагине Jmeter maven, но я получаю "убедитесь, что свойства jmeter.save.saveservice.* Такие же, как при создании файла CSV или при чтении файла. неправильно "ошибка при попытке создать отчет Dashboard после выполнения.
Я также добавил Jmeter.properties и user.properties в свою папку src/test/jmeter и вижу, что эти свойства добавляются в эти файлы в моей целевой папке после выполнения.
Может кто-нибудь подскажите, пожалуйста, как должен быть pom, чтобы мы могли автоматически создавать панель инструментов отчета для Jmeter 3.0.
Спасибо
3 ответа
Вот шаги -
- копия
report-template
reportgenerator.reporties
из каталога jmeter bin и храните его вsrc/test/resources
папка - добавлять
maven-antrun-plugin
в вашем пом следующим
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>pre-site</phase>
<configuration>
<tasks>
<mkdir dir="${basedir}/target/jmeter/results/dashboard" />
<copy file="${basedir}/src/test/resources/reportgenerator.properties"
tofile="${basedir}/target/jmeter/bin/reportgenerator.properties" />
<copy todir="${basedir}/target/jmeter/bin/report-template">
<fileset dir="${basedir}/src/test/resources/report-template" />
</copy>
<java jar="${basedir}/target/jmeter/bin/ApacheJMeter-3.0.jar" fork="true">
<arg value="-g" />
<arg value="${basedir}/target/jmeter/results/*.jtl" />
<arg value="-o" />
<arg value="${basedir}/target/jmeter/results/dashboard/" />
</java>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
После запуска нагрузочного теста вы можете выполнить mvn pre-site
и он будет генерировать тестовую панель JMeter под target\jmeter\results\dashboard
Ссылка - http://www.testautomationguru.com/jmeter-continuous-performance-testing-jmeter-maven/
Еще несколько вещей - я не использую maven jmeter analysis, так как html dashboard намного лучше, чем этот. Поэтому я генерирую результаты теста в формате CSV, который менее ресурсоемкий, чем XML. Я использую следующий сценарий оболочки, чтобы пометить задание CI как сбой после неудачных тестов после выполнения теста и генерации отчета.
if grep false ${WORKSPACE}/prototype/target/jmeter/results/TestPlanNew.jtl; then
echo "Test Failures!!! please check "${WORKSPACE}/prototype/target/jmeter/results/TestPlanNew.jtl" file"
exit 1
fi
Я хочу предложить изменение / дополнение к ответу @Tarun, поскольку я получаю следующую ошибку при запуске mvn pre-site
:
[java] An error occurred: Cannot read test results file :.../target/jmeter/results/*.jtl
Это было связано с использованием подстановочного знака для имени файла результата. Если вам требуется динамическое имя файла для файла.jtl, то вы также можете скопировать файл и дать ему статическое имя. Например, через включение следующего <copy>
блокировать в <tasks>
:
<mkdir dir="${basedir}/target/jmeter/results/tmp" />
<copy todir="${basedir}/target/jmeter/results/tmp">
<fileset dir="${basedir}/target/jmeter/results/" >
<include name="**/*.jtl"/>
</fileset>
<globmapper from="*" to="result.jtl" />
</copy>
и корректировать значение для -g
аргумент соответственно
<arg value="${basedir}/target/jmeter/results/tmp/result.jtl" />
Наконец, после включения org.slf4j:slf4j-simple:1.7.21
зависимость (версия может меняться со временем) для JMeter (3.1), он работал и генерировал панель инструментов HTML, как и ожидалось.
При использовании последней версии плагина он будет сгенерирован по умолчанию.
Пример pom.xml:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.foo</groupId>
<artifactId>test</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>training-project</name>
<url>http://maven.apache.org</url>
<dependencies>
</dependencies>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
<plugins>
<plugin>
<groupId>com.lazerycode.jmeter</groupId>
<artifactId>jmeter-maven-plugin</artifactId>
<version>2.6.0</version>
<executions>
<execution>
<id>jmeter-tests</id>
<goals>
<goal>jmeter</goal>
</goals>
</execution>
<execution>
<id>jmeter-tests2</id>
<goals>
<goal>results</goal>
</goals>
</execution>
</executions>
<configuration>
<generateReports>true</generateReports>
</configuration>
</plugin>
</plugins>
</build>
</project>
Версия Maven 2.3 будет генерировать отчет в формате jtl, который может обрабатывать ant.
<tasks>
<delete dir="${basedir}/target/jmeter/results/dashboard"/>
<mkdir dir="${basedir}/target/jmeter/results/dashboard" />
<copy file="${basedir}/src/test/resources/reportgenerator.properties"
tofile="${basedir}/target/jmeter/bin/reportgenerator.properties" />
<copy todir="${basedir}/target/jmeter/bin/report-template">
<fileset dir="${basedir}/src/test/resources/report-template" />
</copy>
<mkdir dir="${basedir}/target/jmeter/results/tmp" />
<copy todir="${basedir}/target/jmeter/results/tmp">
<fileset dir="${basedir}/target/jmeter/results/" >
<include name="**/*.jtl"/>
</fileset>
<globmapper from="*" to="result.jtl" />
</copy>
<java jar="${basedir}/target/jmeter/bin/ApacheJMeter-3.3.jar" fork="true">
<arg value="-g" />
<arg value="${basedir}/target/jmeter/results/tmp/result.jtl" />
<arg value="-o" />
<arg value="${basedir}/target/jmeter/results/dashboard/" />
</java>
</tasks>