Share a Robot Framework report

Robot Framework gets the artifact right and the distribution wrong — as does every runner, because distribution was never the runner's job. report.html is a genuinely good single-file report: run data embedded, JavaScript inlined, opens anywhere with a browser. Then CI stores it as robot-results.zip and the good part stops mattering.

The half-measures are familiar. Publish to a Jenkins Robot plugin page that only Jenkins users can see. Stand up a static bucket and maintain it. Or screenshot the failing keyword into Slack, which is what actually happens.

One curl, two files

robot --outputdir results tests/

# The body: report.html, self-contained and small.
REPORT_ID=$COMMA_REPORT_ID
curl -fsS -X PATCH \
  "https://commareports.com/api/v1/reports/$REPORT_ID" \
  -H "Authorization: Bearer $COMMA_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d "$(jq -n --rawfile html results/report.html \
        --arg title "Robot — build $BUILD_NUMBER" \
        '{title: $title, html: $html}')"

# The drill-down: log.html and screenshots, as assets.
curl -fsS -X POST \
  "https://commareports.com/api/v1/reports/$REPORT_ID/assets" \
  -H "Authorization: Bearer $COMMA_API_TOKEN" \
  -F "file=@results/log.html"

Two things make this hold up:

  • PATCH, not POST. Each run appends a revision at the same URL, so the bookmark in the QA channel keeps working and any two runs can be diffed.
  • Body vs. assets. report.html is the summary and stays under the 5 MB body cap. log.html is the detail and belongs in assets — 25 MB per file, 250 MB per report. Relative references from the report into the log are rewritten, so the drill-down still resolves.

Screenshots from SeleniumLibrary or Browser library go up the same way, one -F "file=@..." each.

What the URL buys you

  • Comments pinned to the failing keyword. Highlight the row, start a thread, and it survives the next twelve runs — see commenting on HTML.
  • Readers with no CI seat. Release managers, support leads, the vendor whose integration you're testing. The sharing model is per report.
  • A history that outlives artifact retention. Retention windows are measured in days; audits are measured in quarters.
  • Slack on every run. A webhook on revision.created.

Try it

Comma is free — unlimited reports, unlimited commenters, unlimited revision history. Wire one suite and stop unzipping.

Create your first report →

Related