Robot Framework library for Jira, Confluence and Xray (Cloud & Data Center)
Project description
robotframework-jira-xray-confluence
Robot Framework library for Jira, Confluence and Xray (Cloud & Data Center).
Why this package exists
Teams using Robot Framework often end up with several disconnected approaches:
- one library for Jira
- another for Confluence
- a partial wrapper for Xray Server/DC
- custom scripts for Xray Cloud GraphQL
- manual code to map Jira keys to Xray internal IDs
This package unifies those needs into a single Robot Framework library.
What this library covers
This package exposes, through one Robot Framework entry point:
- Jira
- Confluence
- Service Desk
- Xray Server / Data Center
- Xray Cloud through the dedicated
xray-cloud-for-jiraclient
Main design goals
- keep one Robot Framework library instead of several wrappers
- reuse the Python client layer for Xray Cloud
- support implicit active sessions
- avoid duplicating keywords
- keep Python and Robot Framework usages aligned
💥 CORE FEATURE: Hybrid Dynamic Keywords (600+)
This library dynamically exposes 600+ keywords (Jira/Confluence/Bitbucket/JSD/Jira Xray DC)
🔧 How it works
- introspects Python clients
- maps public methods → RF keywords
- injects them dynamically
🎯 Benefits
- no wrapper maintenance
- automatic updates
- massive coverage
Installation
pip install robotframework-jira-xray-confluence
or with uv:
uv add robotframework-jira-xray-confluence
Dependencies
This package depends on:
robotframeworkatlassian-python-apiwraptxray-cloud-for-jira
Package structure
robotframework-jira-xray-confluence/
├── src/robotframework_jira_xray_confluence/
│ ├── __init__.py
│ └── JiraXrayConfluence.py
├── examples/
├── pyproject.toml
├── README.md
├── LICENSE
└── .gitignore
How to import the library in Robot Framework
Recommended import:
Library robotframework_jira_xray_confluence.JiraXrayConfluence
This form is explicit and works cleanly with the class-based implementation.
Quick start
Connect to Jira Cloud
*** Settings ***
Library robotframework_jira_xray_confluence.JiraXrayConfluence
*** Test Cases ***
Connect To Jira Cloud
${jira}= Connect To Jira
... https://your-company.atlassian.net
... username=your.email@company.com
... password=${JIRA_API_TOKEN}
... cloud=${True}
Connect to Xray Cloud
*** Settings ***
Library robotframework_jira_xray_confluence.JiraXrayConfluence
*** Test Cases ***
Connect To Xray Cloud
${xray}= Connect To Xray Cloud
... ${XRAY_CLIENT_ID}
... ${XRAY_CLIENT_SECRET}
Query tests from a Test Plan using the implicit active session
*** Settings ***
Library robotframework_jira_xray_confluence.JiraXrayConfluence
*** Test Cases ***
Get Tests From Plan
Connect To Xray Cloud ${XRAY_CLIENT_ID} ${XRAY_CLIENT_SECRET}
${tests}= Get Tests With Test Plan DEMO-10
Log To Console ${tests}
Explicit session mode
You can also pass the session explicitly if needed:
*** Settings ***
Library robotframework_jira_xray_confluence.JiraXrayConfluence
*** Test Cases ***
Explicit Session Example
${session}= Connect To Xray Cloud ${XRAY_CLIENT_ID} ${XRAY_CLIENT_SECRET}
${tests}= Get Tests With Test Plan ${session} DEMO-10
Log To Console ${tests}
Xray GraphQL keyword
This keyword directly exposes GraphQL access for advanced use cases.
*** Settings ***
Library robotframework_jira_xray_confluence.JiraXrayConfluence
*** Test Cases ***
Use Raw GraphQL
Connect To Xray Cloud ${XRAY_CLIENT_ID} ${XRAY_CLIENT_SECRET}
${query}= Catenate SEPARATOR=\n
... query($issueId: String!) {
... getTest(issueId: $issueId) {
... issueId
... jira(fields:["key","summary"])
... }
... }
${result}= Xray GraphQL ${query} {"issueId": "66925"}
Log To Console ${result}
Available connection keywords
Connect To JiraConnect To ConfluenceConnect To XrayConnect To Xray CloudConnect To Service Desk
Introspection keywords
List Atlassian KeywordsCount Atlassian KeywordsList Xray Cloud KeywordsCount Xray Cloud Keywords
Xray Cloud keywords exposed automatically
The library dynamically exposes the public methods of XrayCloudClient, including:
Get TestGet Test IdGet Test Plan IdGet Test Execution IdGet Tests By JqlGet Test Plans By JqlGet Test Executions By JqlGet Tests With Test PlanGet Tests With Test ExecutionGet Test RunsCreate Test ExecutionAdd Tests To Test PlanUpdate Test Run StatusImport Robot ResultsImport Junit ResultsImport Cucumber ResultsAdd Evidence To Test Run
The names above follow Robot Framework keyword rendering rules based on the Python method names.
Why the Xray Cloud part is separate
atlassian-python-api is very useful, but it does not cover the full Xray Cloud GraphQL use case the way this project needs it.
That is why this library imports and reuses the dedicated package:
xray-cloud-for-jira
This lets the Robot Framework layer stay thin while the Xray Cloud logic lives in a reusable Python package.
Session behavior
This library supports two modes:
1. Implicit session mode
Once you call a Connect To ... keyword, the session is stored internally and reused automatically by the following keywords.
2. Explicit session mode
If you pass a session object as the first argument, that session is used instead.
This design keeps test cases short, while still allowing advanced flows.
Cloud and Data Center coverage
Jira
- Cloud through email + API token
- Server/DC through token-based usage supported by
atlassian-python-api
Confluence
- Cloud through email + API token
- Server/DC through token-based usage supported by
atlassian-python-api
Xray
- Server/DC through
atlassian.Xray - Cloud through
xray-cloud-for-jira
Service Desk
- Cloud and Server/DC via
atlassian-python-api
Example: mixed usage in one suite
*** Settings ***
Library robotframework_jira_xray_confluence.JiraXrayConfluence
*** Test Cases ***
Unified Example
Connect To Jira
... https://your-company.atlassian.net
... username=your.email@company.com
... password=${JIRA_API_TOKEN}
... cloud=${True}
Connect To Xray Cloud ${XRAY_CLIENT_ID} ${XRAY_CLIENT_SECRET}
${issue}= Get Issue DEMO-6
${tests}= Get Tests With Test Plan DEMO-10
Log To Console ${issue}
Log To Console ${tests}
Development install
Clone both repositories locally if you want to work on both packages together.
Install the core Xray package first
git clone https://github.com/orenault/xray-cloud-for-jira.git
cd xray-cloud-for-jira
pip install -e .
Then install the Robot Framework package
git clone https://github.com/orenault/robotframework-jira-xray-confluence.git
cd robotframework-jira-xray-confluence
pip install -e .
or with uv:
uv sync
Build
uv build
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file robotframework_jira_xray_confluence-0.1.0.tar.gz.
File metadata
- Download URL: robotframework_jira_xray_confluence-0.1.0.tar.gz
- Upload date:
- Size: 6.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
180c13390a263057cda74ef92489ea5bf50ca807ed87360dc9d6c7e7569c17f8
|
|
| MD5 |
e6e1704e3d50f73a1e632424faf778e8
|
|
| BLAKE2b-256 |
ab9988cfd4a32de15c25948a2e9ef80ea02834cb7c7e128f0fe3ddf7be5a3bfd
|
File details
Details for the file robotframework_jira_xray_confluence-0.1.0-py3-none-any.whl.
File metadata
- Download URL: robotframework_jira_xray_confluence-0.1.0-py3-none-any.whl
- Upload date:
- Size: 7.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9322b5d2753f520bf1448e66b645213a77178c9f7c7b975c74b64e826c8214df
|
|
| MD5 |
2a451e97ae993c5fe847cfd64ee80e8a
|
|
| BLAKE2b-256 |
9dd5ce323365011ab6268c385960bee6eb046f531a809f46f5fd27855500206f
|