Xray
Sync VRT results to Xray test executions with screenshot evidence.
The Xray integration imports VisualQ visual regression test results directly into Xray for Jira as structured Test Executions, complete with pass/fail status and screenshot evidence.
Why use Xray + VisualQ?
Xray manages your test lifecycle (plans, cases, traceability), while VisualQ handles visual regression detection. Together, your QA team gets:
- Structured VRT results in Xray (not just Jira comments)
- Screenshot evidence attached to each Test Run
- Smart Diff AI explanations included in test comments
- Full traceability from requirements to visual test results
- Unified reporting across functional and visual tests
Prerequisites
- Xray for Jira Cloud (Standard, Advanced, or Enterprise)
- An Xray API Key (Client ID + Client Secret)
Setup
1. Generate Xray API keys
- In Jira, go to Settings > Apps > Xray > API Keys
- Click Create API Key
- Copy the Client ID and Client Secret
2. Configure in VisualQ
- Navigate to Settings > Integrations
- Click Connect on the Xray card
- Enter your credentials:
- Client ID — from step 1
- Client Secret — from step 1
- Jira Project Key — the project where test executions will be created (e.g.,
PROJ)
- Optionally configure:
- Test Plan Key — link all executions to an existing Xray Test Plan
- Auto-create tests — automatically create Generic test issues for each VRT scenario
- Attach evidence — include diff screenshots in test runs
- Click Save
3. Test the connection
Click Test to verify VisualQ can authenticate with the Xray API.
How it works
When a VRT run completes, VisualQ sends the results to Xray:
- Authenticates with the Xray Cloud API using your Client ID and Secret
- Creates a Test Execution in your Jira project with run metadata
- Maps each scenario to a Test Run with PASSED or FAILED status
- Attaches diff screenshots as evidence on failed tests
- Includes Smart Diff AI analysis in test comments (severity, explanation, recommendation)
What appears in Xray
Each VRT run creates a Test Execution issue containing:
- Summary:
VisualQ VRT — Project Name (date) - Description with branch, commit, and report link
- Individual Test Runs for each scenario/viewport combination
- Screenshot evidence on failed runs
Configuration options
| Option | Default | Description |
|---|---|---|
| Auto-create tests | On | Create Generic test issues in Xray for new VRT scenarios |
| Attach evidence | On | Include diff screenshots in failed test runs |
| Diff only | Off | Only attach the diff image (reduces storage) |
| Test Plan Key | — | Link executions to an existing Xray Test Plan |
Events
The Xray integration listens for these events:
| Event | Action |
|---|---|
run.completed | Import execution results (PASSED/FAILED per scenario) |
run.failed | Import a failed execution with error details |
Using with CI/CD
Pass CI metadata to enrich the Xray Test Execution:
# GitHub Action
- uses: abecms/visualq-action@v1
with:
api-key: ${{ secrets.VISUALQ_API_KEY }}
project: my-website
jira-key: PROJ-123# REST API
curl -X POST https://visualq.ai/api/ci/run \
-H "X-API-Key: $VISUALQ_API_KEY" \
-d '{"project": "my-website", "jiraKey": "PROJ-123", "branch": "feature/new-ui", "commitSha": "abc1234"}'Difference with the Jira integration
| Aspect | Jira integration | Xray integration |
|---|---|---|
| API | Jira REST v2 | Xray Cloud REST v2 |
| Output | Comments on issues | Test Executions + Test Runs |
| Evidence | Text only | Screenshots (base64) |
| Traceability | Textual link | Structured test-execution-result |
| Best for | Notifications | Reporting + coverage tracking |
You can use both integrations simultaneously — Jira for issue comments and Xray for structured test execution tracking.