-
Bug
-
Resolution: Unresolved
-
Major
-
None
-
Jenkins ver. 2.133
Performance Plugin 3.12
-
Powered by SuggestiMate
Normally the build log shows one line stating JUnit reports recordings are beings analysed like this:
Performance: Recording JUnit reports '**/report/**/*.xml'
But on my builds the 'Recording JUnit reports' line is repeated 310 times!
The total build size increased from ~20Mb to ~200Mb.
[JENKINS-53745] Multiple JUnit reports recordings analyses at the same time
Builds in which the performance plugins seems to run multiple times, also adds a new artifact to the build generated by the performance plugin: standardResults.xml
I think that you use very general pattern as source path ("*/report//.xml"). If you will use more simple pattern you'll have less file results and performance plugin will analyze them
I'm afraid that has nothing to do with it. The configured source path used to work as expected for more than a year now. Only recently this issue occurred.
Even after changing the source path to a restrictive "report/test/TEST-*.xml", the plugin starts evaluating the test files with multiple 'threads'...
In version 3.12 I fixed Ant pattern search and now it is works correctly. In previous versions this search did not work and it analyze only the first report that was find.
Bug description : https://issues.jenkins-ci.org/browse/JENKINS-41818?focusedCommentId=343258&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-343258
Fix https://github.com/jenkinsci/performance-plugin/commit/e4b2c1008505baa0ce2bdd7cd1e805d420771e57
Well, this fix introduces this nasty side effect. I'm not even using a 'absolute path'. Previously it was not skipping any test result file when analyzing the performance.
Maybe it has something to do with the fact we use multiple jenkins nodes?
What information can I supply in order to get this bug fix?
As I know the plugin works in the following sequence:
1 - Looking for files in source path (On node where build was ran)
2 - Then copy these files to master node
3 - analyze these files and draw graphs
—
In your case you use very general file path. Maybe you can simplify it and use simple Ant pattern which will allow to find the necessary files for this build on each slave.
Also you can clean build workspace before run build. It should decrease count of files in the job workspace
Hello,
I have similar issue when using performance plugin with 2 xml files in each of 7 subfolders :
It generates 196 lines "Performance: File PTB-Menu_Mission_junit.xml reported 0.0% of errors [SUCCESS]. Build status is: SUCCESS"
I noticed that performance plugin search for xml files in both folders workspace & jobs :
- D:\Integration\Jenkins\workspace\ReflexReactiviteEveryServers\ReflexFmTests\Reports\PROD\sReactiviteMenuEtEcran\20190903_165038\CPE-Ecran_HFQ300_junit.xml,
- D:\Integration\Jenkins\jobs\ReflexReactiviteEveryServers\builds\15\performance-reports\JUnit\CPE-Menu_Mission_junit.xml,
but he should only search in workspace as my "source data files" field is set to : "ReflexFmTests/Reports/PROD/sReactiviteMenuEtEcran/*/.xml"
I also use saving artefacts in jenkins parameters, perhaps it is linked to incompatibility between saving artefacts and performance plugin ?
extract of my jenkins parameters :
here is my artefact folder structure : (I do not know what creates dashboard_* files as I do not generate it myself)
say me if you need more elements to analyse
here is end of jenkins console :
New run name is '#15 3/9-16:50' Archiving artifacts Recording test results Creating parser with percentiles:'0,50,90,100,' filterRegex: Performance: Recording JUnit reports 'ReflexFmTests/Reports/PROD/sReactiviteMenuEtEcran/**/*.xml' Performance: JUnit copying reports to master, files '[D:\Integration\Jenkins\workspace\ReflexReactiviteEveryServers\ReflexFmTests\Reports\PROD\sReactiviteMenuEtEcran\20190903_165038\CPE-Ecran_HFQ300_junit.xml, D:\Integration\Jenkins\workspace\ReflexReactiviteEveryServers\ReflexFmTests\Reports\PROD\sReactiviteMenuEtEcran\20190903_165038\CPE-Menu_Mission_junit.xml, D:\Integration\Jenkins\workspace\ReflexReactiviteEveryServers\ReflexFmTests\Reports\PROD\sReactiviteMenuEtEcran\20190903_165039\CPN-Ecran_HFQ300_junit.xml, D:\Integration\Jenkins\workspace\ReflexReactiviteEveryServers\ReflexFmTests\Reports\PROD\sReactiviteMenuEtEcran\20190903_165039\CPN-Menu_Mission_junit.xml, D:\Integration\Jenkins\workspace\ReflexReactiviteEveryServers\ReflexFmTests\Reports\PROD\sReactiviteMenuEtEcran\20190903_165040\ENT-Ecran_HFQ300_junit.xml, D:\Integration\Jenkins\workspace\ReflexReactiviteEveryServers\ReflexFmTests\Reports\PROD\sReactiviteMenuEtEcran\20190903_165040\ENT-Menu_Mission_junit.xml, D:\Integration\Jenkins\workspace\ReflexReactiviteEveryServers\ReflexFmTests\Reports\PROD\sReactiviteMenuEtEcran\20190903_165041\FCE-Ecran_HFQ300_junit.xml, D:\Integration\Jenkins\workspace\ReflexReactiviteEveryServers\ReflexFmTests\Reports\PROD\sReactiviteMenuEtEcran\20190903_165041\FCE-Menu_Mission_junit.xml, D:\Integration\Jenkins\workspace\ReflexReactiviteEveryServers\ReflexFmTests\Reports\PROD\sReactiviteMenuEtEcran\20190903_165042\LPO-Ecran_HFQ300_junit.xml, D:\Integration\Jenkins\workspace\ReflexReactiviteEveryServers\ReflexFmTests\Reports\PROD\sReactiviteMenuEtEcran\20190903_165042\LPO-Menu_Mission_junit.xml, D:\Integration\Jenkins\workspace\ReflexReactiviteEveryServers\ReflexFmTests\Reports\PROD\sReactiviteMenuEtEcran\20190903_165043\MAN-Ecran_HFQ300_junit.xml, D:\Integration\Jenkins\workspace\ReflexReactiviteEveryServers\ReflexFmTests\Reports\PROD\sReactiviteMenuEtEcran\20190903_165043\MAN-Menu_Mission_junit.xml, D:\Integration\Jenkins\workspace\ReflexReactiviteEveryServers\ReflexFmTests\Reports\PROD\sReactiviteMenuEtEcran\20190903_165044\PTB-Ecran_HFQ300_junit.xml, D:\Integration\Jenkins\workspace\ReflexReactiviteEveryServers\ReflexFmTests\Reports\PROD\sReactiviteMenuEtEcran\20190903_165044\PTB-Menu_Mission_junit.xml]' Performance: JUnit parsing local reports '[D:\Integration\Jenkins\jobs\ReflexReactiviteEveryServers\builds\15\performance-reports\JUnit\CPE-Ecran_HFQ300_junit.xml, D:\Integration\Jenkins\jobs\ReflexReactiviteEveryServers\builds\15\performance-reports\JUnit\CPE-Menu_Mission_junit.xml, D:\Integration\Jenkins\jobs\ReflexReactiviteEveryServers\builds\15\performance-reports\JUnit\CPN-Ecran_HFQ300_junit.xml, D:\Integration\Jenkins\jobs\ReflexReactiviteEveryServers\builds\15\performance-reports\JUnit\CPN-Menu_Mission_junit.xml, D:\Integration\Jenkins\jobs\ReflexReactiviteEveryServers\builds\15\performance-reports\JUnit\ENT-Ecran_HFQ300_junit.xml, D:\Integration\Jenkins\jobs\ReflexReactiviteEveryServers\builds\15\performance-reports\JUnit\ENT-Menu_Mission_junit.xml, D:\Integration\Jenkins\jobs\ReflexReactiviteEveryServers\builds\15\performance-reports\JUnit\FCE-Ecran_HFQ300_junit.xml, D:\Integration\Jenkins\jobs\ReflexReactiviteEveryServers\builds\15\performance-reports\JUnit\FCE-Menu_Mission_junit.xml, D:\Integration\Jenkins\jobs\ReflexReactiviteEveryServers\builds\15\performance-reports\JUnit\LPO-Ecran_HFQ300_junit.xml, D:\Integration\Jenkins\jobs\ReflexReactiviteEveryServers\builds\15\performance-reports\JUnit\LPO-Menu_Mission_junit.xml, D:\Integration\Jenkins\jobs\ReflexReactiviteEveryServers\builds\15\performance-reports\JUnit\MAN-Ecran_HFQ300_junit.xml, D:\Integration\Jenkins\jobs\ReflexReactiviteEveryServers\builds\15\performance-reports\JUnit\MAN-Menu_Mission_junit.xml, D:\Integration\Jenkins\jobs\ReflexReactiviteEveryServers\builds\15\performance-reports\JUnit\PTB-Ecran_HFQ300_junit.xml, D:\Integration\Jenkins\jobs\ReflexReactiviteEveryServers\builds\15\performance-reports\JUnit\PTB-Menu_Mission_junit.xml]' Performance: Parsing report file 'D:\Integration\Jenkins\jobs\ReflexReactiviteEveryServers\builds\15\performance-reports\JUnit\CPE-Ecran_HFQ300_junit.xml' with filterRegex ''. Performance: Parsing report file 'D:\Integration\Jenkins\jobs\ReflexReactiviteEveryServers\builds\15\performance-reports\JUnit\CPE-Menu_Mission_junit.xml' with filterRegex ''. Performance: Parsing report file 'D:\Integration\Jenkins\jobs\ReflexReactiviteEveryServers\builds\15\performance-reports\JUnit\CPN-Ecran_HFQ300_junit.xml' with filterRegex ''. Performance: Parsing report file 'D:\Integration\Jenkins\jobs\ReflexReactiviteEveryServers\builds\15\performance-reports\JUnit\CPN-Menu_Mission_junit.xml' with filterRegex ''. Performance: Parsing report file 'D:\Integration\Jenkins\jobs\ReflexReactiviteEveryServers\builds\15\performance-reports\JUnit\ENT-Ecran_HFQ300_junit.xml' with filterRegex ''. Performance: Parsing report file 'D:\Integration\Jenkins\jobs\ReflexReactiviteEveryServers\builds\15\performance-reports\JUnit\ENT-Menu_Mission_junit.xml' with filterRegex ''. Performance: Parsing report file 'D:\Integration\Jenkins\jobs\ReflexReactiviteEveryServers\builds\15\performance-reports\JUnit\FCE-Ecran_HFQ300_junit.xml' with filterRegex ''. Performance: Parsing report file 'D:\Integration\Jenkins\jobs\ReflexReactiviteEveryServers\builds\15\performance-reports\JUnit\FCE-Menu_Mission_junit.xml' with filterRegex ''. Performance: Parsing report file 'D:\Integration\Jenkins\jobs\ReflexReactiviteEveryServers\builds\15\performance-reports\JUnit\LPO-Ecran_HFQ300_junit.xml' with filterRegex ''. Performance: Parsing report file 'D:\Integration\Jenkins\jobs\ReflexReactiviteEveryServers\builds\15\performance-reports\JUnit\LPO-Menu_Mission_junit.xml' with filterRegex ''. Performance: Parsing report file 'D:\Integration\Jenkins\jobs\ReflexReactiviteEveryServers\builds\15\performance-reports\JUnit\MAN-Ecran_HFQ300_junit.xml' with filterRegex ''. Performance: Parsing report file 'D:\Integration\Jenkins\jobs\ReflexReactiviteEveryServers\builds\15\performance-reports\JUnit\MAN-Menu_Mission_junit.xml' with filterRegex ''. Performance: Parsing report file 'D:\Integration\Jenkins\jobs\ReflexReactiviteEveryServers\builds\15\performance-reports\JUnit\PTB-Ecran_HFQ300_junit.xml' with filterRegex ''. Performance: Parsing report file 'D:\Integration\Jenkins\jobs\ReflexReactiviteEveryServers\builds\15\performance-reports\JUnit\PTB-Menu_Mission_junit.xml' with filterRegex ''. Performance: Recording JUnit reports 'ReflexFmTests/Reports/PROD/sReactiviteMenuEtEcran/**/*.xml' Performance: JUnit copying reports to master, files '[D:\Integration\Jenkins\workspace\ReflexReactiviteEveryServers\ReflexFmTests\Reports\PROD\sReactiviteMenuEtEcran\20190903_165038\CPE-Ecran_HFQ300_junit.xml, D:\Integration\Jenkins\workspace\ReflexReactiviteEveryServers\ReflexFmTests\Reports\PROD\sReactiviteMenuEtEcran\20190903_165038\CPE-Menu_Mission_junit.xml, D:\Integration\Jenkins\workspace\ReflexReactiviteEveryServers\ReflexFmTests\Reports\PROD\sReactiviteMenuEtEcran\20190903_165039\CPN-Ecran_HFQ300_junit.xml, D:\Integration\Jenkins\workspace\ReflexReactiviteEveryServers\ReflexFmTests\Reports\PROD\sReactiviteMenuEtEcran\20190903_165039\CPN-Menu_Mission_junit.xml, D:\Integration\Jenkins\workspace\ReflexReactiviteEveryServers\ReflexFmTests\Reports\PROD\sReactiviteMenuEtEcran\20190903_165040\ENT-Ecran_HFQ300_junit.xml, D:\Integration\Jenkins\workspace\ReflexReactiviteEveryServers\ReflexFmTests\Reports\PROD\sReactiviteMenuEtEcran\20190903_165040\ENT-Menu_Mission_junit.xml, D:\Integration\Jenkins\workspace\ReflexReactiviteEveryServers\ReflexFmTests\Reports\PROD\sReactiviteMenuEtEcran\20190903_165041\FCE-Ecran_HFQ300_junit.xml, D:\Integration\Jenkins\workspace\ReflexReactiviteEveryServers\ReflexFmTests\Reports\PROD\sReactiviteMenuEtEcran\20190903_165041\FCE-Menu_Mission_junit.xml, D:\Integration\Jenkins\workspace\ReflexReactiviteEveryServers\ReflexFmTests\Reports\PROD\sReactiviteMenuEtEcran\20190903_165042\LPO-Ecran_HFQ300_junit.xml, D:\Integration\Jenkins\workspace\ReflexReactiviteEveryServers\ReflexFmTests\Reports\PROD\sReactiviteMenuEtEcran\20190903_165042\LPO-Menu_Mission_junit.xml, D:\Integration\Jenkins\workspace\ReflexReactiviteEveryServers\ReflexFmTests\Reports\PROD\sReactiviteMenuEtEcran\20190903_165043\MAN-Ecran_HFQ300_junit.xml, D:\Integration\Jenkins\workspace\ReflexReactiviteEveryServers\ReflexFmTests\Reports\PROD\sReactiviteMenuEtEcran\20190903_165043\MAN-Menu_Mission_junit.xml, D:\Integration\Jenkins\workspace\ReflexReactiviteEveryServers\ReflexFmTests\Reports\PROD\sReactiviteMenuEtEcran\20190903_165044\PTB-Ecran_HFQ300_junit.xml, D:\Integration\Jenkins\workspace\ReflexReactiviteEveryServers\ReflexFmTests\Reports\PROD\sReactiviteMenuEtEcran\20190903_165044\PTB-Menu_Mission_junit.xml]' Performance: JUnit parsing local reports .................. AND SO ON.....
another thing which may cause the loop, my junit report files are self made generated and have same name in testssuites, testsuite, and testcase.
Ecran_HFQ300_junit.xml :
<?xml version="1.0"?>
<testsuites name="Ecran HFQ300" time="7986" timestamp="2019-09-03 10:08:12" hostname="HOSTNAME inconnu" id="Ecran HFQ300" tests="1" failures="0" errors="0">
<testsuite name="Ecran HFQ300" time="7986" tests="1" failures="0" errors="0">
<properties/>
<testcase name="Ecran HFQ300" classname="Ecran HFQ300" time="7986" status="PASSED">
<system-out/>
<system-err/>
</testcase>
</testsuite>
</testsuites>
Menu_Mission_HFQ300_junit.xml :
<?xml version="1.0"?>
<testsuites name="Menu Mission" time="1106" timestamp="2019-09-03 10:08:03" hostname="HOSTNAME inconnu" id="Menu Mission" tests="1" failures="0" errors="0">
<testsuite name="Menu Mission" time="1106" tests="1" failures="0" errors="0">
<properties/>
<testcase name="Menu Mission" classname="Menu Mission" time="1106" status="PASSED">
<system-out/>
<system-err/>
</testcase>
</testsuite>
</testsuites>
Our Jenkins instance works with multiple slaves; The directory structure is somewhat different in slaves than on the master node. Workspaces are not located inside the 'builds' directory, but if I use the following command:
in the slave 'workspace path', the results is 314 file (could be the 311, at the time of reporting of this issue).
No, this is always printed 311 times.