Extract individual test cases from Robot Framework output.xml into separate chunks
Project description
robotframework-LogXML2Chunks
A Python library for extracting individual test cases from Robot Framework output.xml files into separate chunks with individual HTML reports.
Features
- 📦 Split large Robot Framework output.xml into individual test case chunks
- 📊 Generate separate HTML log reports for each test case
- 🔍 Extract test documentation and structured steps
- 📝 Preserve test metadata (index, test_name, test_id, status, documentation, steps, source, xml_file, success)
- 🎯 Data collected from XML files can be made available to reporting systems such as Polarion, qTest, Jira, etc.
Installation
From PyPI (when published)
pip install robotframework-logxml2chunks
From source
git clone https://github.com/ajadach/robotframework-LogXML2Chunks.git
cd robotframework-LogXML2Chunks
pip install -e .
Usage
As a Python Library
from LogXML2Chunks import LogXML2Chunks
# Initialize the chunker
chunker = LogXML2Chunks()
# Split output.xml into chunks
chunker.split_to_chunks(
output_xml_path='output.xml',
output_dir='chunked_results'
)
# Read data from chunks XML
from pathlib import Path
chunks_folder = Path(__file__).parent / 'chunks'
data = chunker.get_data_from_chunks(chunks_folder)
As a Command Line Tool
# Basic usage
logxml2chunks output.xml
# Specify output directory
logxml2chunks output.xml --output-dir my_chunks
# Show help
logxml2chunks --help
Output Structure
Each test case generates:
{index}_{test_name}_{test_id}.xml- Individual test XML file{index}_{test_name}_{test_id}_log.html- HTML log report
The split_to_chunks() method returns a list of dictionaries with:
{
'index': 1, # Test case index
'test_name': 'My Test Case', # Test name
'test_id': 's1-t1', # Test ID
'status': 'PASS', # Test status (PASS/FAIL/SKIP)
'documentation': '...', # Full documentation text
'steps': {...}, # Extracted steps dictionary
'source': '/path/to/test.robot', # Source file path
'xml_file': Path('...'), # Generated XML file path
'log_file': Path('...'), # Generated log file path
'success': True, # Whether generation succeeded
'error': None # Error message if failed
}
Step Extraction
The library automatically extracts steps from test documentation that follow this format:
*** Test Cases ***
My Test Case
[Documentation] Test description
...
... *Steps*:
... 1. First step / Expected result
... 2. Second step / Expected result
...
... Summary Documentation
Log Test execution
Extracted steps format:
{
'First step': 'Expected result',
'Second step': 'Expected result',
}
Requirements
- Python >= 3.7
- robotframework >= 4.0
Development
Setup Development Environment
# Clone repository
git clone https://github.com/ajadach/robotframework-LogXML2Chunks.git
cd robotframework-LogXML2Chunks
# Install in development mode with dev dependencies
pip install -e ".[dev]"
Run Tests
pytest tests/
License
MIT License - see LICENSE file for details
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Author
Artur Jadach
Links
Project details
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_logxml2chunks-1.0.0.tar.gz.
File metadata
- Download URL: robotframework_logxml2chunks-1.0.0.tar.gz
- Upload date:
- Size: 309.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
91e97ad2fb22503767bad776fc5d552776f2f5064d77ac1d1a592ec54251e518
|
|
| MD5 |
0fd357fcbcf03faf06368ff6c530a2c8
|
|
| BLAKE2b-256 |
d4285e18e67062bf3052a004345b902b555b93b85b6956d7b86cb22c54725c28
|
File details
Details for the file robotframework_logxml2chunks-1.0.0-py3-none-any.whl.
File metadata
- Download URL: robotframework_logxml2chunks-1.0.0-py3-none-any.whl
- Upload date:
- Size: 13.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c263bccd186eb8cc3403a2e0032dd16adf614ae455f73640dac1dcb97c789911
|
|
| MD5 |
88e27e2d2c3ce92621a2ff5284cce55a
|
|
| BLAKE2b-256 |
faa60284d2b6207e010794f52182c4ef3f3e84be00401b8cc7f2cb6e4b1ba557
|