This repository is a practical WebdriverIO + Jira integration example using @testream/webdriverio-reporter. It shows how to upload WDIO E2E results and failure screenshots from local runs and GitHub Actions into Jira through Testream.
If you are searching for "WebdriverIO Jira reporter", "WDIO GitHub Actions Jira integration", or "send WebdriverIO results to Jira", this repo is the implementation template.
- CI-ready: Includes a complete GitHub Actions workflow.
- Failure screenshots: Captures screenshots for failing tests via
afterTest. - Correct WDIO wiring: Registers Testream in both
servicesandreporters. - Safe local onboarding: Upload only activates when
TESTREAM_API_KEYis set.
Testream is an automated test management and reporting platform for Jira teams. It ingests test results from frameworks like WebdriverIO, Playwright, Cypress, and Jest, then provides failure diagnostics and trends inside Jira.
If this sample repository is not the framework you need, browse all native reporters in the Testream docs: https://docs.testream.app/.
Click to see how Testream turns raw CI test results into actionable Jira insights (failures, trends, and release visibility):
Install Testream Automated Test Management and Reporting for Jira in your Jira workspace to view uploaded runs.
test/
specs/
navigation.spec.ts - Navigation tests (passing + 1 intentional failure)
forms.spec.ts - Form interaction tests (passing + 1 intentional failure)
assertions.spec.ts - Assertion tests (passing + 1 intentional failure)
wdio.conf.ts
.github/workflows/webdriverio.yml
.env.example
The intentional failures demonstrate how WDIO failures and screenshots appear in Testream/Jira.
- Sign in at testream.app.
- Create a project.
- Copy your API key.
npm installRequires Node.js 18+.
cp .env.example .envSet at least:
TESTREAM_API_KEY=<your key>npm testWith TESTREAM_API_KEY, uploads run automatically. Without it, tests still execute and upload is skipped.
Key behavior in this example:
uploadEnabledis derived from API key presence.- Testream is added to both:
services(run-level aggregation/upload orchestration)reporters(test result capture)
failOnUploadError: trueis enabled.testType: 'e2e',appName,appVersion, andtestEnvironmentare explicit.- CI metadata (
branch,commitSha,repositoryUrl,buildNumber,buildUrl) is auto-detected.
Reporter docs: https://docs.testream.app/reporters/webdriverio
The workflow at .github/workflows/webdriverio.yml runs on pushes and pull requests to main.
Add this repository secret:
Settings -> Secrets and variables -> Actions -> New repository secret
| Name | Value |
|---|---|
TESTREAM_API_KEY |
Your Testream API key |
Workflow env examples already set:
| Variable | Example |
|---|---|
TESTREAM_APP_VERSION |
${{ github.sha }} |
TEST_ENV |
ci |
After connecting Testream to Jira, you get:
- Dashboard-level pass/fail summaries
- Failure diagnostics with stack traces and screenshots
- Trend analytics across runs
- Jira issue creation directly from failed tests
- Confirm
TESTREAM_API_KEYexists in.envor Actions secrets. - Confirm Testream is enabled in both
servicesandreporters.
- Keep the
afterTestfailure screenshot hook inwdio.conf.ts.
- Confirm workflow run context has access to repository secrets.
It is an example repository with production-style wiring intended for adaptation.
To demonstrate screenshot-aware failure triage in Testream/Jira.
Yes. WDIO runs normally without API key-based upload.
| Approach | Benefit | Tradeoff |
|---|---|---|
| Raw WDIO logs/artifacts | Easy baseline | Limited Jira-native reporting |
| Custom upload logic | Flexible | Higher maintenance |
| Testream WDIO reporter (this repo) | Native integration + screenshot-aware Jira workflow | Requires Testream setup |
- Testream app: https://testream.app
- Testream Automated Test Management and Reporting for Jira: https://marketplace.atlassian.com/apps/3048460704/testream-automated-test-management-and-reporting-for-jira
- WebdriverIO reporter docs: https://docs.testream.app/reporters/webdriverio
- WebdriverIO docs: https://webdriver.io
