Skip to content

Migrating from TestRail

Import a TestRail project into Complex QA over the TestRail API. The import runs in the background, creates a new Complex QA project, and can be paused, resumed, or cancelled.

Who can do this: only a team administrator of the current team workspace. Other members see an access denied message.

Where: open /migrations/{locale} on your team subdomain (for example /migrations/en or /migrations/ru).


Before you start

  1. You are signed in on the team subdomain (not the platform service host).
  2. Your role in this team is Administrator.
  3. In TestRail:
    • Admin → Site Settings → API - enable the API and save.
    • My Settings → API Keys - create a key and click Save Settings (required for the key to work).
  4. Prefer an empty destination: the import always creates a new Complex QA project named after the TestRail project.

What is imported

TestRailComplex QANotes
ProjectNew projectCreated at the start of the job
SuitesRoot test suitesOne suite per TestRail suite
SectionsNested test suitesTree via parent section
CasesTest casesTitle, refs, preconditions, priority, estimate
StepsTest case stepsText only - see limits
Runs (optional)Test runsIf you enable runs and results
Results (optional)Test run resultsLinked to imported cases when possible

Not imported in this release: attachments, shared steps, plans, and other TestRail-only objects.


Step-by-step

1. Open Migrations

  1. Sign in on your team workspace.
  2. Go to /migrations/en or /migrations/ru (same language as the rest of the product UI if you prefer).
  3. Click New TestRail import.

2. Connect to TestRail

  1. Base URL - host only, for example https://yourcompany.testrail.io (no /index.php or /dashboard).
  2. Email - the same login email as in TestRail.
  3. API key or password - API key value from My Settings, or your account password.
  4. Click Connect.

If connection fails with 401, see Connection problems.

3. Choose the project and start

  1. Select the TestRail project from the list.
  2. Optionally keep Import runs and results enabled.
  3. Click Start import.

Complex QA creates an import job and a new project. If an active import for the same TestRail project already exists, you are taken to that job instead of creating a duplicate.

4. Watch progress

On the import page you can see:

  • Status - PENDING, RUNNING, PAUSED, COMPLETED, FAILED, CANCELLED
  • Phase - bootstrap, suites, cases, runs, results, finalize
  • Counters - done / skipped / failed per entity type
  • Recent failures - per entity, when something could not be imported

Actions:

  • Pause / Resume - stop or continue processing
  • Cancel - stop the job; stored API credentials are cleared
  • Refresh - reload the page for the latest counters

Processing continues in the background while the job is active. You can leave the page and return later from the migrations list.

5. Open the new project

When status is COMPLETED, open Projects and find the new project (name from TestRail). Review suites, cases, and (if requested) runs and results.


Limits and differences

Steps are flatter than in Complex QA

Complex QA steps are structured (step_element, step_element_action, and related fields). TestRail steps are mostly plain text (content / expected, or a multiline steps field).

After import:

  • Step text and expected result are filled when TestRail provides them.
  • Structured fields such as element and action stay empty.

Richer step mapping is planned for later releases. For now, expect cases and the suite tree to migrate well, while steps look simpler than cases created natively in Complex QA.

Other limits

  • No attachments or shared steps.
  • Import is one TestRail project → one new Complex QA project per job.
  • Duplicate protection uses an internal id map: a resumed or continued import skips entities that were already imported for that Complex QA project.
  • Large projects take time; progress moves in chunks in the background.

Connection problems (HTTP 401)

Authentication failed: invalid or missing user/password or session cookie means TestRail rejected the credentials. Typical fixes:

  1. Enable API under Admin → Site Settings → API, then save.
  2. After creating an API key, click Save Settings on My Settings.
  3. Use the account email and the key value (not the key name).
  4. Try the account password in the same field to confirm login works.
  5. Use a host-only base URL.

Do not share API keys in chat or tickets; revoke and recreate a key if it was exposed.


See also


Version1.0
Last updated2026-07-22

Complex QA - test management system