Отчет JMeter HTML Dashboard не отображается в Jenkins - PullRequest
0 голосов
/ 02 февраля 2019

Я не могу просмотреть отчет Jmeter Dashboard в Jenkins, однако задание jenkins создает отчет index.html, но он пустой

jenkins

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

local

Что мне здесь не хватает?

вот мой 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.performance.dataengg</groupId>
  <artifactId>DataEngg</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>

  <name>DataEngg</name>
  <url>http://maven.apache.org</url>

  <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    <profiles>
        <profile>
            <id>Windows</id>
            <activation>
                <os>
                    <family>Windows</family>
                </os>
            </activation>
            <properties>
                <script.extension>.bat</script.extension>
            </properties>
        </profile>
        <profile>
            <id>unix</id>
            <activation>
                <os>
                    <family>unix</family>
                </os>
            </activation>
            <properties>
                <script.extension>.sh</script.extension>
            </properties>
        </profile>
    </profiles>
    <build>
        <plugins>
            <plugin>
                <artifactId>maven-clean-plugin</artifactId>
                <version>3.1.0</version>
                <configuration>
                    <filesets>
                        <fileset>
                            <directory>${basedir}/htmlReport/Reporting_framework/</directory>
                            <includes>
                                <include>AggregateReport.csv</include>
                                <include>Report.html</include>
                                <include>ReportOutput.zip</include>
                            </includes>
                        </fileset>
                    </filesets>
                </configuration>
            </plugin>

            <plugin>
                <groupId>com.lazerycode.jmeter</groupId>
                <artifactId>jmeter-maven-plugin</artifactId>
                <version>2.7.0</version>
                <configuration>
                    <propertiesUser>
                        <threads>${threads}</threads>
                        <rampUp>${rampUp}</rampUp>
                        <baseURL>${baseURL}</baseURL>
                        <Pconstantthroughputtimer>${constantThroughputTimer}</Pconstantthroughputtimer>
                        <Resultsdirectory>${basedir}/target/jmeter/results/*.jtl</Resultsdirectory>
                        <loopCountDuration>${loopCountDuration}</loopCountDuration>

                    </propertiesUser>
                </configuration>
                <executions>
                    <!-- Run JMeter tests -->
                     <execution>
                        <id>jmeter-tests</id>
                        <phase>verify</phase>
                        <goals>
                            <goal>jmeter</goal>
                        </goals>
                    </execution>
                    <!-- Fail build on errors in test -->
                </executions>
            </plugin>

             <plugin>
                <artifactId>maven-antrun-plugin</artifactId>
                <executions>
                    <execution>
                        <phase>pre-site</phase>
                        <configuration>
                            <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>
                                <java jar="${basedir}/target/jmeter/bin/ApacheJMeter-4.0.jar" fork="true">
                                    <arg value="-l" />
                                    <arg value="${basedir}/target/jmeter/results/*.jtl" />
                                    <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>
        </plugins>
    </build>
</project>

Может быть, какая-то конфигурация Дженкинса идет не так?

Ответы [ 3 ]

0 голосов
/ 04 февраля 2019

Вы можете отобразить панель мониторинга, используя Плагин HTML Publisher

По умолчанию Политика безопасности содержимого Jenkins выглядит как

sandbox; default-src 'none'; img-src 'self'; style-src 'self';

Значениечтение из hudson.model.DirectoryBrowserSupport.CSP Свойство Java System , чтобы вы могли настроить его на более «расслабленный», задав соответствующее значение через Консоль сценариев Jenkins (она будет действовать до следующего перезапуска) илидобавив соответствующий параметр в аргумент запуска Jenkins.

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

0 голосов
/ 30 марта 2019

Поскольку моя организация не разрешает ослаблять безопасность и сбрасывать Политику безопасности контента, поэтому я сделал это с помощью docker и смог просматривать отчеты чисто

Вот файл Dockerfile

FROM alpine:3.9

ENV JMETER_HOME /opt/apache-jmeter-5.1
ENV JMETER_BIN ${JMETER_HOME}/bin
ENV PATH $PATH:$JMETER_BIN
ENV JMETER_DOWNLOAD_URL http://mirrors.estointernet.in/apache//jmeter/binaries/apache-jmeter-5.1.tgz

RUN apk update \
    && apk upgrade \
    && apk add --update openjdk8-jre curl unzip bash \
    && rm -rf /var/cache/apk/* \
    && mkdir -p /tmp/dependencies  \
    && curl -L --silent ${JMETER_DOWNLOAD_URL} >  /tmp/dependencies/apache-jmeter-5.1.tgz  \
    && mkdir -p /opt  \
    && tar -xzf /tmp/dependencies/apache-jmeter-5.1.tgz -C /opt  \
    && rm -rf /tmp/dependencies

COPY launch.sh /opt/
COPY src/ /opt/src

WORKDIR /opt

ENTRYPOINT ["/opt/launch.sh"]

И вы можете иметь свои jmeter команды внутри launch.sh и .jmx скриптов внутри src папки

0 голосов
/ 03 февраля 2019

Это связано с тем, что Jenkins Политика безопасности содержимого .

Необходимо настроить, задав свойство системы Java:

hudson.model.DirectoryBrowserSupport.CSP

Поскольку он содержит зарезервированный символ, вы можете установить это свойство, создав Groovy script файл $ JENKINS_HOME / init.groovy или любой файл .groovy в каталоге $ JENKINS_HOME/init.groovy.d/, содержащий:

System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "default-src 'self'; style-src 'self' 'unsafe-inline'; script-src * 'unsafe-inline'; font-src *;img-src 'self' data: *;frame-ancestors 'self'")

Если вы хотите больше узнать о тестировании производительности и JMeter, эта книга может вам помочь.

Обратите внимание, что вы можете легко делать то, что делаете, следуя этому учебнику .

...