How do I fix a Jenkins HTML report "checksum mismatch"? - jenkins

I got a brand new Jenkins machine running on Linux Ubuntu. I use HTML Publisher Plugin to publish my html reports. I also use Jsystem to invoke the test scenario.
Jenkins 1.643
Html Publisher Plugin 1.10
At the end of the test when open the latest html report from the project main page I get this error:
Checksum mismatch
The checksum of the current wrapper file (0dd0c5ec07dff1d7179f03b5deb290e96ac68f8c) does not match the recorded checksum (090f21ac5f8c4b0eed9e789145a2fe2a6134c900). This indicates a possible security issue, therefore Jenkins will not serve this file. You can access the archived HTML files here.
I have checked existence of file and permissions. If I open the report from the job page then everything works.
UPDATE:
When I open the report from the job page I have no CSS and many errors.
Looks like a security issue.
UPDATE 2:
CSS and Javascript are back, Jenkins had an update on their Content Security Policy. Added args to the Jenkins startup scripts. First issue is still on. :(

It is a bug in that version of the HTML publisher plug in. The bug happens if you have more than one report in your job, mark the publishing option: 'Keep past HTML reports' and then click on the second report.
https://issues.jenkins-ci.org/browse/JENKINS-32281
Solution in https://jenkins.ci.cloudbees.com/job/plugins/job/htmlpublisher-plugin/61/.
Solution is released as 1.11 of the plug in.

it worked for me: Blocked script execution in <URL>. because the document's frame is sandboxed and the 'allow-scripts' permission is not set
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")

Related

Cucumber HTML Report

I am using cucumber.js and producing a .json report after an execution. I am executing my tests from a Jenkins which is not connected to any internet.
I am using cucumber-html-reporter to generate the html report. The html report is created but the report on the Jenkins is not displayed correctly. Styles and css are broken as it is not able to download it.
Any way by which i can display the html report correctly without breaking images and styles on the Jenkins without having any access to internet. Or any other reporter which I can use to display the report correctly.
I am assuming that you have added the dependency in your maven project to generate the reports. I believe you must check this plugin.
https://plugins.jenkins.io/cucumber-reports/
You can install the aforementioned plugin in your jenkins instance and then you can publish the json report with the help of this plugin. Otherwise you can create your custom html report by reading the required data from cucumber json report and once it is done, you can publish that html report in the jenkins.
It is even worthy to check the below jar file that I have created for the cucumber reporting.
https://github.com/frostyaxe/CucuReporter

Unable to generate cucumber reports in jenkins. net.masterthought.cucumber.ValidationException: None report file was added

I am using jenkins to run jobs that uses maven with cucumber . my jobs are running succesfully. I have also managed the plugin Cucumber report in jenkins. But when i view the report i am getting the message as shown in below picture.
I have tried to install various plugins like Jenkins plugin, standalone but with no joy. These are shown as options in the bottom right of the report.
Any clue is helpful. I have tried to check this error in stackover flow also. I didnt get any clue
I could see the reports file in xml which is created by surefire plugin. Any way i can achive reporting part in my project
I managed to get reports in jenkins now.
Previously Jenkins is unable to find the json file in my project.
I have set the path of json file as target and i could able to see the reports.
This might help for those who are looking for answer.
#CucumberOptions(
features= "C:\\Users\\dd pc\\workspace\\PracticeCucumber\\src\\main\\java\\com\\qa\\feature\\Test.feature",
glue= {"com\\qa\\stepDefinition"},
format= {"pretty","html:test-output_1",
"json:target/cucumber-reports/CucumberTestReport.json"},
plugin = ("json:target/cucumber-reports/CucumberTestReport.json"),
monochrome= true,
dryRun= false
)
I am able to solve by providing **/*.json
under Post-build Actions/Cucumber Report/JSON Report Location/ File Include Pattern = **/*.json
First of all in runner file we need to provide following plugin as follows: plugin= {"json:target/cucumber.json" }
Now in Jenkins job, in "post build" section during configuration, add cucumber reports, click on advanced option and provide 'target' text in "JSON Reports Path" text field. Save the job, it will run and will work fine.
Note: target text is the name of folder which we have provided in runner file for generating reports in Json, also cucumber report plugin works on json so need to generate report in json.
I my case the problem was in two jobs over the same test repository (one for Chrome one for Firefox), where one deletes report files after the job while second job was already running and vice versa.

Jenkins and HTML Publisher Plugin create reports awfull

BAD
GOOD and SHOULD BE
Ricently after update my HTML Publisher Plugin up to 1.1 1version (My Jenkins core Jenkins ver. 1.652) I have got HTML report created looking so bad. After I recover to older previous version is still looks bad.
So problem is that I can't go back to nicelly created reports as before.
BUT My index.html file which I try to export to Jenkins looks so perfect in the browser.
Can you please help me with any ideas?

Jenkins htmlpublisher issue

After choosing "Add post build action" and selecting "Publish HTML Reports" the htmlpublisher plugin displays the table header fields (html directory to archive, index pages, report title, keep past html reports) but does not display the fields to enter the data. Directly beneath the table header fields the Add and Delete buttons are displayed. I'm hoping someone has seen this behavior before and found a fix.
I'm running Jenkins on ubuntu 12.04. Other than not being able to publish html reports Jenkins is working and building jobs from SVN. No errors are reported in the Jenkins log. I initially was running Jenkins 1.424 when I noticed the problem (new install, so html publisher never used before). So I updated Jenkins to version 1.474 but the problem continued. I have removed and re-installed Jenkins, same results.
Thank you for your ideas and suggestions.
It looks like this bug has been noted: https://issues.jenkins-ci.org/browse/JENKINS-14491
And apparently: "Reverting to Jenkins 1.473 while keeping the plugin to 1.0 works."
This is how the plugin works...
you should create your html separately - let's say you created a folder named "MyReport" that contains a lot of html files in it, and the "index" html file is index.html.
on the "Publish Html Report" fields you will have to fill the following:
html directory to archive = MyReport
index pages = index.html
report title = My Report Title
and then you will have a link for that report from Jenkins UI

Jenkins: Display last console output on project page

When viewing a project in Jenkins, I'd like to see the last console output displayed on the project page.
This satisfies two needs:
I most often just want to see what the output of the build was; clicking through to the last console output seems needlessly cumbersome
Non-technical management can't remember how to / aren't sufficiently motivated to click through to the last console output in cases where the output is relevant to them if only they were to easily see it
I've looked for plugins that support this but can't find any.
What options do I have?
First an easy solution: job descriptions (push 'edit description' button on the main job page) admit HREF links. Make that link your latest build console permalink (http://[jenkins_server]/job/[job-name]/lastBuild/console).
If even one click is too much, here's a possible solution: you can use log contents as the description of your job. You can update your job via Jenkins CLI with:
java -jar jenkins-cli.jar -s http://[jenkins-server] update-job [job-name] < config.xml
So what you need to do is this: after your jobs run, trigger another job that will take the triggering job and console output file as parameters, substitute <description> in the job's config.xml with the contents of the console file (with proper escaping, etc.), and run the update command as above. Of course, this solution is labor-intensive and bug-prone.
I had this same questions myself and I ended up finding this option useful...
http://[jenkins-server]/job/[job-name]/[build-number|lastBuild]/logText/progressiveText?start=0
Edit: This no longer works in the current version of Jenkins
Similar to malenkiy_scot's answer, you can actually embed iframes in the description.
I use:
<iframe src='lastBuild/consoleText' style='width: 80%; height: 500px'></iframe>
as my project description, and it shows the latest console text in the project description page.
I just created a plugin that displays console output of latest build at the project page.
https://github.com/jenkinsci/display-console-output-plugin
To use this plugin, you have to type mvn hpi:hpi to create a display-console-output.hpi file. Then upload this plugin from http://localhost:8080/pluginManager/advanced.
You can simply just use one of these plugins:
http://wiki.hudson-ci.org/display/HUDSON/Hudson+Personal+View
https://wiki.jenkins-ci.org/display/JENKINS/Console+Column+Plugin
May be you don't need it, you can click in the status button in the left of each build, each button show console output for each build.
Of course, this feature may not be operative in all Jenkins versions.
The solution for your problem is the https://wiki.jenkins-ci.org/display/JENKINS/Extra+Columns+Plugin plugin for Jenkins. After installing it you may modify your view to add a button for the console output as an additional column.
For a declarative pipeline, you can show a link to the console right where the progress bar shows up by adding this line at the very top of the file:
currentBuild.description = """Job console"""
This depends on a plugin and a setting, both of which were already on my system:
The OWASP Markup Formatter plugin provides the setting Security > Configure Global Security > Markup Formatter, which should be set to "Safe HTML".
The setting Jenkins -> Manage Jenkins -> Configure System -> Jenkins Location -> Jenkins URL needs to be the URL of your Jenkins installation.

Resources