Skip to main content

Migrating from qTest to Testiny

This guide shows how to migrate test cases from Tricentis qTest Manager to Testiny. The Testiny importer connects to the qTest API and migrates your test cases including their module structure, steps, custom field values, text formatting, images, attachments, called test cases and linked requirements. Both qTest SaaS (*.qtestnet.com) and qTest on-premises sites are supported.

info
If you encounter any problems while importing your existing test cases or migrating from another tool, please do not hesitate to ask in the forum. Our support team is always available to assist you.

Migrate via qTest API​

You need the address of your qTest site and a qTest bearer token. The importer migrates one qTest project at a time — repeat the steps below for each project.

  1. Go to the test cases in your Testiny project and choose Import from the menu as shown in the screenshot below.

Folders menu item 'Import'

  1. Select qTest and click Import from qTest.

Import source selection with qTest selected

  1. Enter your qTest credentials, then click Connect:

    • qTest Site Address — the URL of your qTest site, e.g. https://your-site.qtestnet.com. You can also paste any link copied from qTest — the importer only uses the site address.
    • qTest Bearer Token — the API token of your qTest user. The importer accepts the token with or without the Bearer prefix.

Connect to qTest with site address and bearer token

tip

To get the bearer token, log in to qTest Manager, open the Resources page and copy the token from the API & SDK section. See the qTest documentation for details.

The importer only reads the test cases your qTest user has access to.

note

Please note that a qTest on-premises site must be reachable from the Internet so that Testiny can send API requests and migrate the data.

  1. After connecting, you can now import your existing test cases:

    • Choose from which qTest project you would like to import the test cases.
    • If your qTest requirements come from Jira, you can also configure a Jira integration in Testiny and select it to migrate the linked Jira requirements as well.
    • If you just want to try the migration, you can also set a limit to only retrieve a small number of test cases.

    Then click Continue.

  2. Testiny retrieves the test cases from qTest. Click Map fields automatically to align the fields from your qTest test cases with the fields in Testiny.
    You can optionally map custom fields as well — if a custom field from qTest does not already exist in Testiny, you can create it during the mapping. Once the mapping is confirmed, you get a preview of the test cases that will be imported. For further information about general importer settings, refer to the Importer Settings.

  3. Finally, if there are no errors and you're satisfied with the preview, click Import to finalize the import and add the test cases to your project.
    A summary dialog appears after the import, showing detailed statistics and any error messages. Copy the data to the clipboard (Copy all data to the clipboard) or dismiss the dialog by selecting either Save summary and close (this action downloads an HTML report of the import) or just Close.

What gets imported from qTest​

The importer reads the latest version of each test case in the selected qTest project and converts it as follows:

  • Modules become folders in Testiny, with the same nesting and order as in qTest.
  • Name, description, precondition, steps and expected results are imported with their text formatting. Images embedded in the text are uploaded to Testiny.
  • Test case fields — the qTest system fields arrive as qtest_status, qtest_type, qtest_priority and assigned_to, the qTest test case ID (e.g. TC-12) as qtest_id. Custom fields keep their qTest name. Map them to existing Testiny fields or create new custom fields during the field mapping.
  • Attachments of test cases and test steps are uploaded to Testiny. Step attachments appear as a link (or an inline image) in the step they belong to. Use the Import attachments setting to import All attachments, Only ones linked in text, or None.
  • Called test cases — a step that calls another test case is replaced by the steps of the called test case, using its approved version (or its latest version if it was never approved). The first of these steps names the called test case, and the expected result of the calling step is added to the last one. If a called test case is deleted or not accessible, the importer shows a warning and keeps a placeholder step.
  • Parameters in step texts ([~name] in qTest) are kept as {{name}} placeholders.
  • Requirements linked to a test case are listed in the qtest_requirements field (ID and name). If you selected a Jira integration in step 4, requirements that qTest synchronizes from Jira are additionally linked to their Jira issues in Testiny.
note

Test runs, test cycles and test results from qTest Test Execution are not migrated — the importer migrates the test cases from qTest Test Design.

Avoid hitting the API rate limit​

qTest SaaS limits the number of API requests per site. The importer waits and retries automatically when qTest rejects requests, so you usually don't need to change anything. If other tools use the qTest API at the same time, set the API rate limit in the importer's advanced settings to Low or Medium to send fewer requests. The default is Off.

Migrate via the Testiny CLI​

You can also migrate qTest test cases with the Testiny CLI, e.g. to script the migration of many projects. Pass the bearer token in the QTEST_API_KEY environment variable and run the testcase command with the qTest options:

export TESTINY_API_KEY=<your Testiny API key>
export QTEST_API_KEY=<your qTest bearer token>
testiny-importer testcase --project <Testiny project key> --qtest-api https://your-site.qtestnet.com --qtest-project "<qTest project name or ID>"
OptionDescription
--qtest-api <site url>Imports from this qTest site
--qtest-project <name or id>Imports from this qTest project; the CLI asks for the project if you omit it
--qtest-tc-limit <count>Limits the number of test cases fetched
--qtest-rate-limit <rpm>Limits the number of requests per minute to the qTest API (default: no limit)
--work-itemsLinks the Jira requirements; use --integration to choose the Jira integration

Run testiny-importer testcase --help for all options, e.g. how attachments and duplicates are handled.

Next steps​

info
For any issues during the import process or for additional support, please do not hesitate to ask in the forum. Our support team is always available to assist you.