# Migrate to Qualflare

Source: https://docs.qualflare.com/docs/migrate · Last updated: 2026-10-29

Move to Qualflare from TestRail, Qase, Testmo or Allure TestOps by importing their exports, or run it alongside Zephyr or Xray. What moves and what stays.

Qualflare imports test cases from TestRail, Qase, Testmo and Allure TestOps export files of up to 20 MB. It has no importer for Zephyr or Xray, so with those you run Qualflare alongside. Automated results move separately, through the qf CLI.

## Migration guides

Pick the guide for the tool you're moving from:

- [Migrate from TestRail](https://docs.qualflare.com/docs/migrate/testrail): Import a TestRail CSV or XML export: sections become suites, and steps keep their expected results.
- [Migrate from Qase](https://docs.qualflare.com/docs/migrate/qase): Import a Qase CSV, JSON or XML export: JSON and XML keep nested suites, and steps keep their data.
- [Migrate from Testmo](https://docs.qualflare.com/docs/migrate/testmo): Import a Testmo CSV export: folders become suites, with one step per case or a list of steps.
- [Migrate from Allure TestOps](https://docs.qualflare.com/docs/migrate/allure-testops): Import an Allure TestOps CSV export with nested scenario steps, and keep your Allure adapters for results.
- [Use Qualflare alongside Zephyr or Xray](https://docs.qualflare.com/docs/migrate/zephyr-xray): No importer exists: keep your manual tests where they are and upload automated results with qf.

## What each tool can import

Qualflare's **Import** reads the export files of four tools:

| Tool                                                                     | Files                         | Suites come from                           | Case state                             |
| ------------------------------------------------------------------------ | ----------------------------- | ------------------------------------------ | -------------------------------------- |
| [TestRail](https://docs.qualflare.com/docs/migrate/testrail)             | CSV, XML                      | Sections, as a `Parent > Child` path       | Draft                                  |
| [Qase](https://docs.qualflare.com/docs/migrate/qase)                     | CSV, JSON, XML                | Suites; JSON and XML keep the path         | Kept when it matches a Qualflare state |
| [Testmo](https://docs.qualflare.com/docs/migrate/testmo)                 | CSV                           | Folders, as a path                         | Kept when it matches a Qualflare state |
| [Allure TestOps](https://docs.qualflare.com/docs/migrate/allure-testops) | CSV                           | Suite labels, else epic, feature and story | Kept when it matches a Qualflare state |
| [Zephyr, Xray](https://docs.qualflare.com/docs/migrate/zephyr-xray)      | None: run Qualflare alongside | —                                          | —                                      |

Qualflare doesn't import generic CSV or spreadsheet files, or its own export.

## What moves and what stays

* **Moves:** suites, test cases and their steps. An expected result becomes its own Expected Result step, and preconditions become a Precondition step where the export has them. Priority and test type map to Qualflare's values.
* **Stays in the old tool:** runs and results, attachments, tags, custom fields, test plans, milestones and users.

Qualflare [suites](https://docs.qualflare.com/docs/test-management/test-suites) don't nest, so a nested section or folder becomes one suite whose name holds the path, such as `API > Authentication`.

## Before you start

Requires the Editor role or higher in the project.

* Import is on every plan. It adds to the project you open **Browse** in, so [create the project](https://docs.qualflare.com/docs/administration/projects) first.
* Imported suites and cases count toward your workspace's limits, 10 test suites and 200 test cases on Starter: every section path, suite or folder in the export becomes one suite. See [What happens at a limit](https://docs.qualflare.com/docs/administration/plans#what-happens-at-a-limit).
* One file holds up to 1,000 cases in 200 suites. Export a larger project in parts, a few suites or sections at a time. See [Limits](https://docs.qualflare.com/docs/test-management/import-export#limits).
* Importing never changes or deletes what a project already has: a case whose name already exists in its suite is skipped.

## Plan your migration

1. Import your test case library into each project with the guide for your tool.
2. Upload automated results from CI with `qf <identifier> collect`: each upload becomes a launch ([CI/CD integration](https://docs.qualflare.com/docs/cli/ci-cd)). A result joins an imported case only when its suite and case names match; otherwise the upload creates an automated case, and its suite if no suite has that name. If a result that joins an imported case includes steps, they replace the case's imported steps ([Steps on matched cases](https://docs.qualflare.com/docs/runs/automated-results#reported-steps)).
3. If your tests write Allure results, keep the adapters and upload the results directory ([Upload Allure results](https://docs.qualflare.com/docs/cli/allure)).
4. Recreate your [test plans](https://docs.qualflare.com/docs/test-management/test-plans) and [milestones](https://docs.qualflare.com/docs/test-management/milestones), then [invite your team](https://docs.qualflare.com/docs/administration/users).

## Related

* **Guides:** [Import and export test cases](https://docs.qualflare.com/docs/test-management/import-export) · [Create and edit test cases](https://docs.qualflare.com/docs/test-management/create-test-cases)
* **Reference:** [Test suites and Browse](https://docs.qualflare.com/docs/test-management/test-suites) · [Plans and limits](https://docs.qualflare.com/docs/administration/plans) · [Glossary: test suite](https://docs.qualflare.com/docs/reference/glossary#test-suite)
* **CLI/API:** [Upload results with qf collect](https://docs.qualflare.com/docs/cli/collect)
