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

Azure DevOps Services |Azure DevOps Server |Azure DevOps Server 2022 |Azure DevOps Server 2020

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

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

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

  • 在现有测试计划的基础上,为新的冲刺阶段或发布版本定义测试计划
  • 将测试套件从一个测试计划导入到同一个或不同项目中的另一个测试计划
  • 复制测试用例,以用于不同的测试套件和测试计划
  • 跨项目共享测试对象
  • 将测试对象从一个项目移动到另一个项目,可能是为了支持将项目合并到一个项目中

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

先决条件

类别 要求
访问权限级别 - 至少拥有 基本 级别的访问权限,有权查看对应区域路径下的工作项。
- 若要添加测试计划和测试套件,请删除测试项目并定义测试配置:基本 + 测试计划 访问权限。
或者,是以下 Visual Studio 订阅之一:
- 企业
- 测试专业版
- MSDN 平台
权限 - 要添加或修改测试计划、测试套件、测试用例或其他基于测试的工作项类型:将“编辑此节点中的工作项”权限在相应的“区域路径”下设置为“允许”
- 若要修改测试计划属性,如生成和测试设置:管理测试计划 权限设置为 允许 对应的 区域路径
- 要创建和删除测试套件,添加和删除测试用例,更改与测试套件相关联的测试配置,并修改测试套件层次结构(即移动测试套件):管理测试套件 权限设置为 允许 在相应的 区域路径下。

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

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 服务: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 版本,可以使用下表中列出的客户端或工具复制、克隆或导入测试计划、测试套件或测试用例。

Client/tool

测试计划

测试套件

测试案例


Web 门户1

✔️ 复制

✔️ 导入

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

Web 门户(网格)

工作项窗体

✔️ 复制

中医 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 相对应。

列出测试计划或测试套件

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

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

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

提示

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

查询编辑器的屏幕截图。

复制或克隆测试计划

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

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

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

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

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

  3. 选择更多操作>复制测试计划。 使用此选项可在项目中复制或克隆测试计划。

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

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

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

    • 根据以下指导选择一个或其他单选按钮:
      • 引用现有测试用例:当计划最终合并这两个分支时,请选择此选项。 在这种情况下,对已经实现和测试的功能保持相同的要求。
      • 复制现有测试用例:当你想单独维护新的测试用例时,请选择此选项;请注意,新测试用例将链接到现有需求。

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

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

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

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

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

  6. 如果克隆了自动测试案例,请在目标测试计划中指定构建。

导入或克隆测试套件

当为新的冲刺创建测试计划时,你通常希望重复之前冲刺中的一些测试,以确保已经实现的功能仍然有效。

概念图,复制测试套件。

注意

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

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

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

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

  1. 选择测试计划>测试计划

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

  3. 选择更多操作>复制测试计划。 使用此选项可在项目中复制或克隆测试计划。

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

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

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

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

    将显示以下消息:

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

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

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

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

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

复制测试用例

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

提示

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

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

  1. 选择测试计划>测试计划

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

  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 文件将显示在 Downloads 文件夹中。

导入测试用例

  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 复制和克隆测试计划和测试套件。

后续步骤