Skip to main content

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

Testing Test Lint Typecheck
Package PyPI Version PyPI Downloads
Meta License Python 3.10+ Code style: ruff uv

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:

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

BSD 2-Clause

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

importobot-0.1.3.tar.gz (310.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

importobot-0.1.3-py3-none-any.whl (377.7 kB view details)

Uploaded Python 3

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

Hashes for importobot-0.1.3.tar.gz
Algorithm Hash digest
SHA256 d9b50cab289f85b4d8563d925564369df1f9e0e6087e73195d32bf05a76a2746
MD5 60e3d67f85d1ba73bd50b9b615b5c120
BLAKE2b-256 3c04d6bb02329f0c3c7341562bd998769d367dd31df42532d12769dd93e6d17c

See more details on using hashes here.

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

Hashes for importobot-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 602821901c1c0141ce1e64eeef951e2f138f52115813d5dd94b91689f2a28d63
MD5 61890b89fa0c54f12d89a3c6e6350335
BLAKE2b-256 536533ba864fc2ab2f4dcf742291193389823842686da4624f0bb53cd4ca8b94

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page