Automated test framework converter for migrating test cases from Zephyr, JIRA/Xray, and TestLink to Robot Framework format with bulk processing capabilities
Project description
Importobot
What is it?
Importobot is a Python package for converting structured test exports from Zephyr, TestRail, Xray, and TestLink into Robot Framework test files. We built it to automate the tedious process of manually migrating large test suites, which often involves re-typing thousands of test steps and losing valuable metadata.
This tool preserves test metadata (descriptions, tags, priorities) and converts test steps into clean Robot Framework syntax. Our goal is to make test migration faster, more accurate, and less painful.
Main Features
- Bulk Conversion - Process entire directories with a single command
- API Integration - Fetch test data directly from Zephyr, TestRail, JIRA/Xray, and TestLink
- Template Learning - Learn patterns from existing Robot Framework files to maintain consistency
- Schema-Aware Parsing - Read field definitions from your documentation to improve accuracy (85% → 95%)
- Confidence Scoring - Bayesian inference to detect unusual input formats and reduce incorrect conversions
- Performance - Convert 1,000 tests in ~6 seconds with ~20KB memory per test case
Where to get it
The source code is currently hosted on GitHub at: https://github.com/athola/importobot
Binary installers for the latest released version are available at the Python Package Index (PyPI):
pip install importobot
Quick Start
import importobot
# Convert a single file
converter = importobot.JsonToRobotConverter()
summary = converter.convert_file("zephyr_export.json", "output.robot")
print(summary)
# Convert a directory
result = converter.convert_directory("./exports", "./converted")
Command Line Interface
# Basic conversion
importobot zephyr_export.json converted_tests.robot
# API integration
importobot \
--fetch-format zephyr \
--api-url https://your-zephyr.example.com \
--tokens your-api-token \
--project PROJECT_KEY \
--output converted.robot
# Template-based conversion
importobot --robot-template templates/ input.json output.robot
# Schema-driven parsing
importobot --input-schema docs/field_guide.md input.json output.robot
Documentation
The official documentation is hosted on the project wiki:
- Getting Started - Installation and basic usage
- User Guide - Complete usage instructions including API retrieval
- Blueprint Tutorial - Step-by-step guide to the template learning system
- API Examples - Detailed API usage examples
- API Reference - Function and class reference
- Migration Guide - Upgrade instructions and version compatibility
- Performance Benchmarks - Performance characteristics and optimization details
- FAQ - Common issues and solutions
Development
Install uv for package management:
# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows (PowerShell)
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
Clone the repository and install dependencies:
git clone https://github.com/athola/importobot.git
cd importobot
uv sync --dev
Run tests:
make test # Run test suite
make test-all # Run all test categories
make mutation # Mutation testing
make perf-test # Performance benchmarks
See the Contributing Guide for detailed development guidelines.
Getting Help
For usage questions and discussions, please open an issue on the GitHub issue tracker.
Contributing
We welcome contributions! Please see the Contributing Guide for guidelines on:
- Reporting bugs
- Suggesting features
- Submitting pull requests
- Code style and testing requirements
License
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 importobot-0.1.3.tar.gz.
File metadata
- Download URL: importobot-0.1.3.tar.gz
- Upload date:
- Size: 310.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d9b50cab289f85b4d8563d925564369df1f9e0e6087e73195d32bf05a76a2746
|
|
| MD5 |
60e3d67f85d1ba73bd50b9b615b5c120
|
|
| BLAKE2b-256 |
3c04d6bb02329f0c3c7341562bd998769d367dd31df42532d12769dd93e6d17c
|
File details
Details for the file importobot-0.1.3-py3-none-any.whl.
File metadata
- Download URL: importobot-0.1.3-py3-none-any.whl
- Upload date:
- Size: 377.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
602821901c1c0141ce1e64eeef951e2f138f52115813d5dd94b91689f2a28d63
|
|
| MD5 |
61890b89fa0c54f12d89a3c6e6350335
|
|
| BLAKE2b-256 |
536533ba864fc2ab2f4dcf742291193389823842686da4624f0bb53cd4ca8b94
|