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

Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018

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

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

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

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

有关测试对象和术语的概述,请参阅 测试对象和术语

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

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

客户端/工具

测试计划

测试套件

测试用例


Web 门户1

✔️ (复制)

✔️ (导入)

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

Web 门户 (网格)

✔️ (复制和粘贴)

Web 门户 (网格)

✔️ (复制和粘贴)

工作项窗体

✔️ (复制)

Microsoft Test Manager1
(弃用的)

✔️ (克隆计划)

✔️ (创建副本)

TCM CLI2

✔️ (克隆)

✔️ (克隆)

✔️ (导入自动)

REST API3

✔️ (克隆)

✔️ (克隆)

注意

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

先决条件

  • 必须连接到项目。 如果还没有项目, 请创建一个项目

  • 必须添加到项目。 若要添加, 请将用户添加到项目或团队

  • 若要查看与测试相关的工作项,必须具有 基本 访问权限或更高权限,并且有权查看相应区域路径下的工作项。

  • 若要添加测试计划和测试套件手动测试用例删除测试项目定义测试配置,必须具有基本 + Test Plans访问级别或具有以下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

    参数 描述
    /collection: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凭据没有适当的权限,或者使用的是基本身份验证,或者未连接到域,请使用此选项。
  • 必须是要访问的项目 () 的有效成员,并根据运行的命令拥有所需的权限。 若要了解详细信息,请参阅 手动测试访问权限和权限

  • 若要克隆或导入测试对象,必须授予添加测试计划和测试套件所需的相同访问级别,如 先决条件中所述。

列出测试计划或测试套件

通常需要知道分配给测试计划或测试套件的 ID 以支持复制、克隆或导入操作。

可以从 Boards> Queries 页生成测试计划、测试套件或其他测试对象的列表。 例如,通过设置 工作项类型=测试计划,可以列出为团队项目定义的所有测试计划。 如果选择 “跨所有项目 查询”复选框,查询将列出为所有项目定义的所有测试计划。 若要了解有关定义查询的详细信息,请参阅 定义工作项查询

提示

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

Screenshot of Query Editor, Query test plans.

复制或克隆测试计划

建议为每个冲刺或发布创建新的测试计划。 这样做时,通常可以克隆上一个周期的测试计划,并且复制的测试计划已准备好用于新周期,但更改很少。

如果要将应用程序分支到两个版本,克隆非常有用。 克隆后,可以更改两个版本的测试,而不会影响彼此。

Conceptual image, clone test plan.

注意

如果你不熟悉使用Azure Test Plans,请查看 Navigate Test Plans,了解如何使用用户界面访问选择函数。

  1. 打开Test Plans>测试计划,然后选择要从 MineAll 页面复制的测试计划。 选择 “更多操作”,然后选择“ 复制测试计划 ”菜单选项。 使用此选项可以在项目中复制或克隆测试计划。

    Test Plan More Actions menu, copy test plan option.

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

    Copy test plan dialog

    根据以下指南选择一个或多个单选按钮:

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

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

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

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

    Copied test plan, browser view

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

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

注意

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

导入或克隆测试套件

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

Conceptual image, copy test suites.

注意以下事项:

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

可以使用用户界面将测试套件从同一个或不同的项目中的一个测试计划导入到当前项目中的另一个测试计划。 此操作实质上复制或克隆测试套件,创建新的测试套件并复制任何子测试套件。 测试套件引用的测试用例不是重复的,而是由克隆的测试套件引用。

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

若要在不同的套件和计划中使用相同的测试用例,请使用 网格 视图复制和粘贴测试用例。 若要了解详细信息,请参阅 (XLink)

  1. 打开Test Plans>测试计划,然后选择要从“我的”或“全部”页导入测试套件的测试计划。 选择 “更多操作”,然后选择“ 复制测试计划 ”菜单选项。 使用此选项可以在项目中复制或克隆测试计划。

    Test Suite More Actions menu, Import test suites option.

  2. 在打开的对话框中,如果测试计划位于其他项目中,请选择项目。 否则,请选择测试计划和测试套件,然后选择 “创建”。 一次只能从测试计划导入一个套件。

    Import suites from a Test Plan dialog

  3. 以下消息显示:

    Import suites initiated message.

  4. 导入操作完成后,会看到以下消息。 选择 “刷新 ”以刷新浏览器。

    Import suites completed message.

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

    Imported test suite displayed.

注意

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

复制测试用例 (s)

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

提示

当真正想要执行的操作是使用不同的 配置不同的数据进行测试时,请勿复制测试用例。

可以将测试用例从组织或集合中的项目或其他项目复制到指定的测试计划和测试套件。 同时,可以选择复制所有链接和附件。

  1. 打开Test Plans>测试计划,选择包含要从“我的”或“所有”页复制的测试用例) (测试用例的测试计划。 接下来,选择包含要复制的测试用例 () 的测试套件。 从“ 定义 ”页中,选中要复制的所有测试用例的复选框。

  2. 选择 “更多操作”,然后选择“ 复制测试用例 ”菜单选项。

    Test Cases More Actions menu, copy test cases option.

  3. “复制测试用例” () 对话框中,选择Project(如果从其他项目复制测试用例)。 接下来,选择要将测试用例复制到的测试计划和测试套件。

    Copy test cases dialog

    (可选)选中 “包括现有链接 ”和 “包括现有附件”复选框。 完成后,选择 “创建”。

    根据所选测试用例的数量和复杂性,复制操作将在后台执行。 完成后,将收到操作已完成的消息,以及指向测试用例已复制到的测试套件的链接。

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

复制和粘贴测试用例,以便在不同的套件和计划中使用相同的测试。 例如,可以有一个测试套件,该测试套件使用在更详尽的测试套件中定义的测试子集。 DefineGrid> 视图支持编辑测试用例,以及将测试用例复制和粘贴到不同的测试套件。 有关编辑测试用例,请参阅 “创建测试用例”,使用网格视图编辑测试用例

提示

当真正想要执行的操作是使用不同的 配置不同的数据进行测试时,请勿复制测试用例。

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

  1. “Test Plans>测试计划”页中,选择要复制的测试套件,其中包含测试用例 () 。 在“ 定义 ”选项卡中,选择 “网格” 视图。

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

    Copy test cases from Grid view.

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

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

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

    Saved test cases pasted into Grid view.

批量导入或导出测试用例

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

导出测试用例

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

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

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

    Screenshot of Export test cases from the selected test suite.

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

    Screenshot of selected test cases, Export test cases to CSV.

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

导入测试用例

  1. “Test Plans>测试计划”页中,选择要在其中导入测试用例的测试套件的测试计划。

    Screenshot of Import test cases to the selected test suite.

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

    Import Test Cases dialog.

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

(中医) 导入自动测试用例

若要将自动测试用例导入测试套件,请使用 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 命令行工具

后续步骤

REST API

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