Je ne parviens pas à afficher le rapport Jmeter Dashboard dans Jenkins, mais le travail jenkins crée un rapport index.html mais il est vide
cela fonctionne très bien localement et index.html est généré avec toutes les valeurs requises.
Que me manque-t-il ici?
voici mon 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>
Peut-il s'agir d'une configuration jenkins qui ne va pas?
3 Réponses :
Cela est dû à la politique de sécurité du contenu de Jenkins . Vous devez l'ajuster en définissant la propriété Java System: hudson.model.DirectoryBrowserSupport.CSP Comme il contient un caractère réservé, vous pouvez définir cette propriété en créant un Groovy script fichier $ JENKINS_HOME / init.groovy, ou tout fichier .groovy du répertoire $ JENKINS_HOME / init.groovy.d / contenant: Si vous souhaitez en savoir plus sur les tests de performances et JMeter, ce book peut vous aider. Notez que vous pouvez faire ce que vous faites facilement en suivant ceci tutoriel .
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'")
L'administrateur de jenkins dit que le changement mentionné ci-dessus pose un risque pour la sécurité, est-ce vrai? si oui, quelle est la solution alternative, puis-je configurer les changements dans le travail jenkins lui-même?
Cela détend la sécurité mais demandez-lui d'expliquer le risque. Non, vous ne pouvez pas configurer au niveau de la tâche. Aucune autre solution AFAIK. Si la réponse est correcte, veuillez l'accepter et voter pour. Merci
Vous pouvez afficher le tableau de bord à l'aide du HTML Publisher Plugin
Par défaut, la la politique de sécurité du contenu Jenkins ressemble à p >
sandbox; default-src 'none'; img-src 'self'; style-src 'self';
La valeur est en cours de lecture depuis hudson.model.DirectoryBrowserSupport.CSP
Propriété Java System afin que vous puissiez le configurer de manière plus" décontractée "en définissant la valeur appropriée via Jenkins Script Console (il vivra jusqu'au prochain redémarrage) ou en ajoutant le paramètre approprié à l'argument de démarrage de Jenkins.
Vous pourriez également être intéressé par Jenkins Performance Plugin qui ajoute des fonctionnalités supplémentaires telles que des critères de réussite / échec et des graphiques de tendances de performances
Étant donné que mon organisation ne permet pas d'assouplir la sécurité et de réinitialiser la politique de sécurité du contenu, je l'ai donc fait en utilisant docker
et j'ai pu afficher les rapports proprement
Voici le Dockerfile p>
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"]
Et vous pouvez avoir vos commandes jmeter
dans les scripts launch.sh
et .jmx dans src code > dossier