Skip to main content

Migrating from Azure DevOps Test Plans to Testiny

This guide shows how to migrate test cases from Azure DevOps Test Plans (Azure Test Plans) to Testiny. The in-app importer connects to the Azure DevOps API with a personal access token and migrates your test cases including steps, shared steps, parameters, text formatting, images, attachments, custom field values and linked requirements.

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.

Prerequisites​

  • The URL of your Azure DevOps organization, e.g. https://dev.azure.com/your-organization (the legacy https://your-organization.visualstudio.com URL works as well). For Azure DevOps Server, use the URL of your collection, e.g. https://your-server/DefaultCollection.
  • A personal access token with read access to the scopes Test Management and Work Items.
  • Optional: an Azure DevOps integration in Testiny that points to the same Azure DevOps organization — required to migrate the requirements linked to your test cases.

Migrate via Azure DevOps API​

  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 Azure Test Plans and click Import from Azure Test Plans.

Import source picker with the Azure Test Plans tile selected

  1. Enter the organization or collection URL and your personal access token, then click Connect.

Azure DevOps connection form with the Organization or Collection URL and Personal Access Token fields

note

Please note that an Azure DevOps Server instance must be reachable from the Internet so that Testiny can send API requests and migrate the data.

  1. Choose what to import:

    • Azure DevOps Project — the project that holds your test cases.
    • Create folders from — how the imported test cases are organized into folders:
      • Test plans and suites — imports the test cases of the selected test plans; each test plan becomes a folder and its suites become subfolders.
      • Area paths (all test cases of the project) — imports all test cases of the project, independent of test plans, and creates folders from their area paths.
    • Test plans — the test plans to import (only for Test plans and suites). A test case that is part of several suites is imported only once — into a static suite, if it belongs to one.
    • Optional - Import Azure DevOps Requirements (Tested By links) — select a Testiny Azure DevOps integration that points to the same Azure DevOps organization to link the requirements that the test cases are tested by.
    • Limit number of fetched test cases — if you just want to try the migration, retrieve only a small number of test cases.

    Then click Continue.

  2. Testiny retrieves the test cases from Azure DevOps. Click Map fields automatically to align the fields from your Azure DevOps test cases with the fields in Testiny. You can optionally map further fields — such as area_path, iteration_path or your Azure DevOps custom fields — to custom fields in Testiny. 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​

Azure DevOpsTestiny
TitleTest case title
Steps (action and expected result)Steps and expected results
DescriptionPrecondition
A first step starting with "Precondition:" that has no expected resultAppended to the precondition
Shared stepsExpanded into the steps of each test case; the first step names the shared steps, e.g. "➡️ Shared steps: Log in (#123)"
Parameters and shared parametersA table with one column per parameter and one row per iteration — map the parameters field to a Testiny Multi-Line Text custom field to keep it
Priority 1–4Priority Critical, High, Medium, Low
State Design, Ready, ClosedStatus Draft, Ready, Obsolete
Automation status Automated, Not Automated, PlannedAutomation status Automated, Not automated, To be automated
TagsTags
Images and attachments, including attachments of individual stepsInline images and attachments; step attachments are linked in their step
Requirements linked via "Tests / Tested By"Linked requirements (with an Azure DevOps integration)
Custom fields, area path, iteration path, assigned to, automated test name/storage/type, Azure DevOps IDAvailable for mapping to Testiny custom fields
note

If shared steps cannot be found or the personal access token has no access to them, the affected test cases are imported with a placeholder step, e.g. "➡️ Shared steps #123 (not found)", and the import summary lists the missing shared steps.

Avoid hitting the API rate limit​

Azure DevOps throttles requests of large migrations. Testiny waits and retries automatically when Azure DevOps asks it to slow down. If the migration still fails because of the rate limit, set API rate limit in the advanced importer settings to Medium or Low to send fewer requests per minute.

Next steps​