复制或克隆测试计划、测试套件和测试用例

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

多个工具支持测试项(例如测试计划、测试套件和测试用例)的复制、克隆或导入操作。 测试用例描述了运行测试并验证功能实现或 bug 修复所要执行的步骤。 测试套件将测试用例和其他测试套件分组为特定顺序。 测试计划定义要针对特定迭代或发布运行的测试套件集合。

每个测试用例旨在确认特定行为。 测试用例可能属于一个或多个测试套件,但测试套件可以属于一个或多个测试计划。

通常,应为每个主要项目里程碑创建一个测试计划。 测试项的复制、克隆或导入操作支持以下方案。

  • 根据现有测试计划为新的冲刺或发布定义测试计划
  • 将测试套件从一个测试计划导入到同一个或不同项目中的另一个测试计划
  • 复制测试用例,以便在不同的测试套件和测试计划中使用
  • 跨项目共享测试对象
  • 将测试对象从一个项目移到另一个项目,可能支持将项目合并到单个项目中

有关详细信息,请参阅 测试对象和术语概述。

先决条件

必须具有以下权限和访问级别:

  • 基本 访问权限或更高权限,以及查看相应区域路径下的工作项的权限。 有关详细信息,请参阅将用户添加到项目或团队
  • 基本 + 测试计划 访问级别,用于添加测试计划和测试套件、删除测试项目并定义测试配置。 或者,具有以下 Visual Studio 订阅一:
  • 必须具有以下权限:添加或编辑与测试相关的项目,
    • 编辑此节点 权限集中的工作项设置为 “允许 在相应的 区域路径”下添加或修改测试计划、测试套件、测试用例或其他基于测试的工作项类型。
    • 管理在相应的区域路径下设置为“允许”的测试计划权限,以修改测试计划属性,例如生成和测试设置。
    • 在相应的区域路径下管理测试套件权限集,以创建和删除测试套件、添加和删除测试用例、更改与测试套件关联的测试配置,以及修改测试套件层次结构(移动测试套件)。

有关详细信息,请参阅 手动测试访问权限和权限

使用 TCM 命令行工具

若要使用 TCM 命令行工具,必须具备以下各项:

  • 已安装 Visual Studio 2017 Professional 或更低版本。 从命令提示符和以下目录访问 TCM:

    • %programfiles(x86)%\Microsoft Visual Studio\2017\Professional\Common7\IDE
    • %programfiles(x86)%\Microsoft Visual Studio\2017\Enterprise\Common7\IDE
    • %programfiles(x86)%\Microsoft Visual Studio 14.0\Common7\IDE
  • 若要运行 TCM 命令,请根据需要指定 /collection/teamproject 参数 /login

    参数 说明
    /收集:CollectionURL 必需。 指定团队项目集合的 URI。 URI 的格式如下所示:
    - 对于 Azure DevOps Services: http://dev.azure.com/OrganizationName
    - 对于 Azure DevOps Server: http://ServerName:Port/VirtualDirectoryName/CollectionName。 如果未使用虚拟目录,则 URI 的格式如下所示:http://ServerName:Port/CollectionName
    /teamprojectproject 必需。 包含要克隆或导入自动测试的测试对象的项目的名称。
    /loginusername,[password] 可选。 指定有效的 Azure DevOps 用户的名称和密码,以及谁有权运行命令。 如果你的 Windows 凭据没有适当的权限,或者你使用的是基本身份验证,或者你未连接到域,请使用此选项。
  • 必须是要访问的一个或多个项目的有效成员,并且具有基于所运行的命令所需的权限。 有关详细信息,请参阅 手动测试访问权限和权限

  • 必须具有相同的访问级别才能添加测试计划和测试套件以克隆或导入测试对象。

支持的复制、克隆和导入工具

根据所使用的 Azure DevOps 版本,可以使用下表中列出的客户端或工具复制、克隆或导入测试计划、测试套件或测试用例。

客户端/工具

测试计划

测试套件

Test Cases(测试用例)


Web 门户1

✔️ 复制

✔️ 进口

✔️ 复制 ✔️ 批量导出/导入

Web 门户(网格)

Web 门户(网格)

工作项窗体

✔️ 复制

Microsoft 测试管理器1
(已弃用)

✔️ 克隆计划

✔️ 创建副本

中医 CLI2

✔️ 克隆

✔️ 克隆

✔️ 自动导入

REST API3

✔️ 克隆

✔️ 克隆

注意

  1. 随着 Azure DevOps Server 2020 的发布,Azure 测试计划的 Web 门户已显著更新。 添加了许多新功能以支持复制、克隆、导入和导出。 有关概述,请参阅 “导航测试计划”。
  2. 安装 Visual Studio 2017 或更低版本时,会安装测试用例管理(TCM)命令行工具。 本文中提供的示例反映了 Visual Studio 2017 版本提供的选项。 早期版本可能支持更少的选项。 有关详细信息,请参阅 使用 TCM 命令行工具
  3. 添加了用于支持克隆测试计划和测试套件的 REST API 命令,版本 5.0 与 Azure DevOps 2019 对应。
  1. Microsoft 测试管理器(MTM) 已弃用,用于 2020 年 1 月的 Azure DevOps Services,Azure DevOps Server 2020 及更高版本不支持。 Azure 测试计划的当前版本支持 MTM 支持的所有功能等。
  2. 安装 Visual Studio 2017 或更早版本时,测试用例管理(TCM)命令行工具将安装。 本文中提供的示例反映了 Visual Studio 2017 版本提供的选项。 早期版本可能支持更少的选项。 有关详细信息,请参阅 使用 TCM 命令行工具

列出测试计划或测试套件

执行与测试计划或测试套件相关的复制、克隆或导入操作时,必须有权访问其唯一 ID。 使用此标识符可以精确定位要使用的特定计划或套件。 通过了解分配的 ID,可以简化测试过程,并确保准确副本 (replica)或传输与测试相关的数据。

执行以下步骤以生成测试计划、测试套件或其他测试对象的列表。

  1. 从项目中选择 Boards>查询。
  2. 在查询编辑器中输入参数 Work Item Type=Test Plan 。 可以列出为团队项目定义的所有测试计划。
  3. 在“跨项目检查”框中输入查询中的检查。 查询列出了为所有项目定义的所有测试计划。 有关详细信息,请参阅 “定义工作项查询”。
  4. 运行查询。

提示

虽然测试计划、测试套件和测试用例彼此相关,但无法通过工作项查询查看关系。 链接类型不链接测试计划、测试套件和测试用例。 仅共享步骤和共享参数链接到测试用例。 此外,测试用例链接到用户情景或他们测试的其他工作项。

查询编辑器的屏幕截图。

复制或克隆测试计划

根据冲刺或发布创建新的测试计划时,一种有用的方法是从上一周期克隆测试计划。 通过最小的调整,复制的测试计划非常适合新周期。 这种做法简化了规划过程,并确保迭代之间的一致性。

需要将应用程序分支到两个版本时,克隆将证明特别有用。 克隆后,可以单独修改每个版本的测试,而不会影响另一个版本。 这是管理测试工作的高效方法,同时保持不同应用程序变体之间的分离。

概念映像,克隆测试计划。

  1. 从项目中选择测试计划>测试计划。

  2. 选择要从 “我的 ”或“ 全部 ”页复制的测试计划。

  3. 选择“更多操作>复制测试计划”。 此选项允许在项目中复制或克隆测试计划。

    显示“测试计划更多操作”菜单的屏幕截图,其中“复制测试计划”选项。

  4. 指定新测试计划的名称,并为计划选择区域 路径迭代路径

    显示“复制测试计划”对话框的屏幕截图。

    • 根据以下指南选择一个或多个单选按钮:
      • 引用现有测试用例:在计划最终合并两个分支时选择此选项。 在这种情况下,请保留已实现和测试的功能的相同要求。
      • 复制现有测试用例:如果要单独维护新的用户情景或要求,请选择此选项。 如果计划分入两个类似但独立的应用程序,你可能想要更改其中一个应用程序的用户情景,而无需更改另一个应用程序的故事。 选择此选项将为新的测试用例创建一组独立的要求。

    如果复制现有测试用例,则复制的测试用例将分配 为克隆的测试计划指定的区域路径迭代路径

    有关详细信息,请参阅 “关于区域和迭代”路径(冲刺)路径

    页面将刷新以显示新复制的测试计划。

    显示复制的测试计划、浏览器视图的屏幕截图。

  5. 更新复制以使用新区域和迭代路径的任何 基于查询的套件

  6. 如果克隆了自动测试用例,请在目标测试计划中指定生成。

注意

Azure DevOps Server 2019 和早期版本的 Web 门户不支持此功能。 复制测试计划的功能需要 Azure DevOps Server 2020 或更高版本。

导入或克隆测试套件

为新的冲刺创建测试计划时,通常需要重复先前冲刺中的某些测试,以确保已实现的功能仍然有效。

概念映像,复制测试套件。

注意

  • 将测试套件导入(Web)或克隆(TCM)到新项目时,新套件包含源套件中所有测试用例的副本。 但是,它不会保留任何历史数据,如以前的测试运行、相关的 bug、旧结果。
  • 测试用例引用的共享步骤也在目标项目中克隆和创建。
  • 你无法将测试用例从同一测试计划克隆到同一个测试计划,甚至不能克隆到不同的套件中。 若要完成此方案,必须先将测试用例移动到其他临时测试计划。 然后,使用临时测试计划作为源计划,并将测试用例克隆回源测试计划,方法是将 ID 放入目标测试计划的位置。 在此过程中,测试用例中存在的共享步骤也会重复。

使用 Azure 测试计划时,可以将测试套件从一个测试计划导入到当前项目中的另一个测试计划。 测试计划是否在同一项目中并不重要。 此过程涉及复制或克隆测试套件,从而创建新的测试套件。 此外,任何子测试套件也会重复。 测试套件引用的测试用例不重复;而是被克隆的测试套件引用。

可用于 tcm suites /list 列出为项目定义的所有测试套件。

若要在不同的套件和计划中使用相同的测试用例,请使用 网格 视图复制和粘贴测试用例。

  1. 选择“测试计划测试计划>”。

  2. 选择要从 “我的 ”或“ 全部 ”页导入测试套件的测试计划。

  3. 选择“更多操作>复制测试计划”。 此选项允许在项目中复制或克隆测试计划。

    显示“测试套件更多操作”菜单的屏幕截图,“导入测试套件”选项。

  4. 在打开的对话框中,如果测试计划位于其他项目中,请选择该项目。 否则,请输入测试计划名称或 ID 以及测试套件名称或 ID。 还可以从下拉菜单中选择名称或 ID。

  5. 创建 导入。 一次只能从测试计划导入一个套件。

    显示“测试计划”对话框中的“导入套件”的屏幕截图。

    将显示以下消息:

    显示导入套件启动的消息的屏幕截图。

  6. 导入操作完成后,将显示以下消息。 选择“刷新以刷新浏览器。

    显示导入套件已完成消息的屏幕截图。

    然后显示新添加的测试套件。

    显示导入的测试套件的屏幕截图。

注意

Azure DevOps Server 2019 和早期版本的 Web 门户不支持此功能。 导入测试套件的功能需要 Azure DevOps Server 2020 或更高版本。

复制测试用例

在 Web 门户中,可以将测试用例从项目或其他项目复制到测试套件,也可以使用 网格 视图将 测试用例 从一个套件复制和粘贴到另一个套件。 (可选)可以批量导入和导出测试用例

提示

如果要使用不同的 配置不同的数据进行测试,请不要复制测试用例。

你可以灵活地从项目内或组织或集合中的另一个项目复制测试用例。 此外,还可以选择在复制过程中包括所有链接和附件。

  1. 选择“测试计划测试计划>”。

  2. 选择包含要从“我的”或“全部”页复制的一个或多个测试用例的测试计划。

  3. 选择要复制的一个或多个测试用例的测试套件。

  4. 在“定义”页中,选择要复制的所有测试用例的检查框。

  5. 选择“更多操作>复制测试用例”。

    显示“测试用例更多操作”菜单的屏幕截图,其中“复制测试用例”选项。

  6. 从下拉菜单中选择“项目”,然后输入“测试计划名称”或“ID”和“测试套件名称”或“ID”。 还可以从下拉菜单中选择名称或 ID。

    显示“复制测试用例”对话框的屏幕截图。

  7. (可选)选择“包括现有链接”和“包括现有附件”的检查框

  8. 创建 副本。

    后台复制操作取决于所选测试用例的数量和复杂性。 完成后,系统会向你发送一条通知,确认操作是否成功,以及指向复制的测试用例所在的测试套件的链接。

复制和粘贴测试用例(网格视图)

在管理测试用例时,复制和粘贴作为一种有价值的技术,用于在各种套件和计划中重复使用相同的测试。 例如,假设有一个全面的测试套件,并且你想要在另一个套件中创建更集中的测试子集。 “ 定义>网格” 视图支持编辑测试用例并将其复制到不同的测试套件。 有关详细信息,请参阅 “创建测试用例”,使用“网格”视图编辑测试用例

提示

如果要使用不同的 配置不同的数据进行测试,请不要复制测试用例。

从 Internet Explorer、Microsoft Edge 或 Chrome 浏览器,可以将测试用例从 一个测试计划和测试套件的网格 视图中复制到另一个测试计划和测试套件。

  1. 从“测试计划>测试计划”页中,选择要复制的一个或多个测试用例的测试套件。 在“定义”选项卡中,选择“网格视图”。

  2. 突出显示要复制的行,然后输入 Ctrl+C

    显示“从网格”视图中复制测试用例的屏幕截图。

  3. 从相同或不同的计划中选择不同的测试套件,并使用 CTRL+V 粘贴。 如果未选择其他套件,则粘贴时不会发生任何操作,因为每个套件只能有一个对任何测试用例的引用。

  4. 选择“ 保存测试用例”。

    新的测试用例会随分配的新 ID 一起保存。

    显示粘贴到网格视图中的已保存测试用例的屏幕截图。

批量导入或导出测试用例

在 Web 门户中,可以从/向测试套件执行批量导入或导出测试用例。 测试用例在逗号分隔值 (CSV) 文件中定义。

导出测试用例

  1. 从“测试计划>测试计划”页中,选择包含要导出的测试用例的测试套件的测试计划。

  2. 可选。 选择 “列”选项 以添加要包含在下载文件中的字段。

  3. 若要导出测试套件的所有测试用例,请选择“ 将测试用例导出到 CSV”。

    从所选测试套件导出测试用例的屏幕截图。

    若要导出测试套件的测试用例的子集,请选择要导出的测试用例,选择“更多选项”,然后选择“将测试用例导出到 CSV”。

    所选测试用例的屏幕截图,将测试用例导出到 CSV。

  4. 导出的 CSV 文件将显示在 “下载” 文件夹中。

导入测试用例

  1. “测试计划测试计划>”中,选择包含要将测试用例导入的测试套件的测试计划。

    将测试用例导入到所选测试套件的屏幕截图。

  2. 选择要从打开的对话框中导入的文件,然后选择“ 导入”。

    显示“导入测试用例”对话框的屏幕截图。

  3. 选择“确认”。 如果指定测试套件中已定义的测试用例,某些元素可能会在导入期间过度写入。

导入自动测试用例(TCM)

若要将自动测试用例导入测试套件,请使用 tcm testcase /import。 必须为包含测试的测试程序集指定.dll文件。

tcm testcase /import /collection:teamprojectcollectionurl /teamproject:project
             /storage:path
             [/maxpriority:priority]
             [/minpriority:priority]
             [/category:filter]
             [/syncsuite:id [/include]]
             [/login:username,[password]]
参数 说明
/storagepath 指定包含要导入的自动测试的测试程序集的路径和名称。
/maxprioritypriority 可选。 根据测试方法的最大优先级指定要导入的测试。 例如,如果参数为 /maxpriority:1,则只有测试方法的优先级属性小于或等于 1 的测试将作为测试用例从程序集导入。
/minprioritypriority 可选。 根据测试方法的最低优先级指定要导入的测试。 例如,如果参数为 /minpriority:2,则仅对测试方法具有优先级属性的测试(等于或大于 2)的测试导入为程序集中的测试用例。
/categoryfilter 可选。 根据测试程序集中每个测试方法的类别指定要导入的测试。 可以将此参数与 /syncsuite 特定类别的测试一起使用,将具有特定类别的测试导入到特定的测试套件中。
有关测试类别的详细信息,请参阅 使用测试资源管理器运行单元测试。
/syncsuiteid 可选。 指定要将导入的测试用例添加到的测试计划中测试套件的套件 ID。 此套件不能是动态套件或基于查询的套件。 如果指定要同步的测试套件以更新添加的测试,则不会导入的测试将从测试套件中删除,但不会从测试计划本身中删除。

有关说明/collection/teamproject/login参数,请参阅使用 TCM 命令行工具

限制

  • 测试用例状态列必须处于 “设计” 状态。
  • 测试用例标题 长度 不得超过 128 个字符。
  • 导入和导出期间创建的 JSON 对象限制为 20 MB。 如果导入失败,请尝试使用小部分测试用例的操作。
  • 执行导入的用户必须对要导入或导出的测试计划和测试套件的区域和迭代路径具有权限。
  • 如果相关链接计数超过测试用例的 1000,复制导入 操作将失败。

REST API

可以使用以下 REST API 复制和克隆测试计划和测试套件。

后续步骤