You picked Allure for its HTML reports. Then you tried to share those reports with your team, and found that Allure Report produces static files and leaves hosting to you. Allure offers two ways past that: free, self-hosted storage for Allure 3, and the paid Allure TestOps. Gaffer is a third option. Each asks a small team to run something different: one container or Worker for Allure storage, four backing services for on-premise TestOps, one CI upload step for Gaffer.
Why Teams Look for an Allure Report Alternative
Allure Report is free and open source, and generates static HTML you host yourself. Allure TestOps is the paid product, at $39 per user/month with volume pricing for larger teams. Each comes with trade-offs:
Self-Hosting Complexity
This applies only to on-premise Allure TestOps. In the Cloud edition, Qameta hosts it for you. Running the on-premise edition means:
- Running PostgreSQL, RabbitMQ, Redis and S3-compatible storage
- Managing backups and storage
- Keeping everything updated and secure
For small teams, this is a lot of overhead just to share test results.
CI Pipeline Integration
Allure requires adding the Allure commandline tool to your CI environment, generating reports, then uploading them somewhere your team can access. History needs its own step: Allure 3 uses a historyPath JSONL file, and Allure 2 copies the history directory between runs. This works, but it’s another moving part to maintain.
Report Hosting
Allure generates static HTML reports, but hosting them requires additional setup. Common approaches:
- GitHub Pages (works but limited for private repos)
- S3 + CloudFront (more infrastructure to manage)
- Self-hosted web server (even more maintenance)
- Allure Report Storage, which Allure 3 publishes to (free, Apache-2.0, self-hosted)
With Allure Report Storage, each report “gets a shareable URL”, with cross-run history grouped by repo and branch. It runs as a Docker container (bundled SQLite and local disk) or a Cloudflare Worker (D1 and R2), and Allure’s docs say: “Neither needs an external database or bucket by default”. Access is token-based, and the docs do not describe user accounts or roles. Nothing expires automatically; only explicit deletion removes reports.
What Does Each Option Ask a Small Team to Run?
Allure Report needs a static host, Allure 3 storage needs one container or Worker, on-premise TestOps needs four backing services, and TestOps Cloud and Gaffer need nothing hosted.
| Option | What you run | What you pay |
|---|---|---|
| Allure Report | Allure in CI, a static host, and a history step | Free software, plus your hosting |
| Allure 3 + Allure Report Storage | Allure 3 in CI, plus one Docker container or Cloudflare Worker | Free software (Apache-2.0), plus your hosting |
| Allure TestOps Cloud | Nothing hosted: Qameta runs it | $39 per user/month |
| Allure TestOps on-premise | TestOps, PostgreSQL, RabbitMQ, Redis and S3-compatible storage | $39 per user/month, plus your infrastructure |
| Gaffer | One CI upload step, nothing hosted | $0, $15 or $49/month with unlimited users, plus $0.50/GB/month for storage overage on Pro and Team |
Gaffer: Hosted Test Reporting
Gaffer takes a different approach: hosted test reporting with zero infrastructure.
No Self-Hosting
Gaffer is a SaaS platform. No servers to manage, no databases to configure, no updates to apply. Sign up and start uploading test results.
Simple CI Integration
One step in your CI pipeline:
- name: Upload to Gaffer if: always() uses: gaffer-sh/gaffer-uploader@v2 with: gaffer_upload_token: ${{ secrets.GAFFER_PROJECT_TOKEN }} report_path: ./test-resultsOr with curl if you prefer:
curl -X POST https://app.gaffer.sh/api/upload \ -H "X-API-Key: $GAFFER_PROJECT_TOKEN" \ -F "files=@test-results/report.html"One YAML step is all it takes: no additional tools in CI, no database, no server to maintain.
Instant Team Sharing
Every upload gets a URL for your team, and you can create a share link for anyone else. Send it in Slack, paste it in a PR, or bookmark it. No downloads, no zip files, no “let me spin up the report server.”
Built-in Flaky Test Detection
Gaffer automatically tracks test stability over time and identifies flaky tests by analyzing flip rates. No additional setup required: just upload your results. Full detail in flaky test detection.
Feature Comparison
| Feature | Allure Report | Allure 3 + storage | Allure TestOps | Gaffer |
|---|---|---|---|---|
| Test reports | Static HTML you host | Published to your storage instance | Hosted | Hosted |
| Historical trends | historyPath file (Allure 3) or copied history directory (Allure 2) | Cross-run history by repo and branch | Yes | Yes |
| Flaky test signal | Flaky mark from tests history (needs history enabled), plus a changed-on-retry mark | Same marks, using the history it stores | Automatic (3+ status transitions in the last 10 runs) | Flaky detection from flip rates |
| Team sharing | Through your static host | Shareable URL, token-based access | Yes | Team URL and share links |
| Self-hosting required | Yes, to share | Yes | Optional (Cloud or on-premise) | No |
| Database required | No | No external database by default (bundled SQLite, or D1 on Cloudflare) | Cloud: none to run. On-premise: PostgreSQL | No |
| Pricing | Free | Free (Apache-2.0) | $39 per user/month | Flat-rate tiers, plus storage overage on Pro and Team |
Framework Support
Both Allure and Gaffer support major test frameworks:
| Framework | Allure | Gaffer |
|---|---|---|
| Playwright | Yes | Yes |
| Jest | Yes | Yes |
| Vitest | Yes | Yes |
| pytest | Yes | Yes |
| JUnit | Yes | Yes (JUnit XML guide) |
| Cypress | Yes | Yes (via CTRF) |
Gaffer also supports CTRF (Common Test Report Format), which has adapters for many test frameworks.
When to Use Allure
Allure 3 with Allure Report Storage is the better choice if you:
- Want a free, open-source, self-hosted report host
- Can run one container or already use Cloudflare
- Need report data to stay on your infrastructure
- Already rely on Allure’s annotations (@Step, @Attachment)
When to Use Gaffer
Gaffer is probably a better fit if you:
- Want test reporting without infrastructure overhead
- Have a small team without dedicated DevOps
- Want built-in Slack notifications and GitHub integration
- Prefer flat-rate tiers with unlimited users over per-user pricing, and are fine with metered storage past your plan’s limit
Migration from Allure
Already using Allure? Gaffer works alongside your existing setup:
- Keep generating Allure reports if your team is used to them
- Add the Gaffer upload step to CI
- Use CTRF or JUnit XML format for Gaffer analytics
- Gradually shift to Gaffer for sharing and history
No big-bang migration required.
Other Comparisons
Evaluating multiple tools? See how Gaffer compares to ReportPortal, Currents.dev, TestDino, and Codecov Test Analytics. For a wider view, see 10 test reporting tools compared.
Try It
Gaffer’s free tier includes 500 MB storage and 7-day retention. Enough to evaluate whether it fits your workflow.