Azure DevOps 服务 |Azure DevOps Server |Azure DevOps Server 2022
Azure Test Plans中的自动测试将自动化测试代码连接到测试用例工作项。 可以从测试计划中按需运行测试、跟踪结果、进行手动测试,并衡量需求级别的质量。 本文逐步讲解从编写测试到分析结果的完整工作流。
端到端自动化测试工作流
设置自动测试涉及以下步骤:
- 创建自动化测试 - 在受支持的框架中编写测试,并将其签入源代码管理。
- 设置生成管道 - 创建一个管道,用于编译测试项目并生成测试二进制文件。
- 将测试与测试用例相关联 - 将每个自动测试方法链接到测试用例工作项,以便进行可跟踪。
- 运行自动测试 - 从测试计划中或作为 CI/CD 流水线的一部分按需执行测试。
- 查看结果和跟踪质量 - 分析通过/失败结果,跟踪需求覆盖率并识别趋势。
先决条件
| 类别 | 要求 |
|---|---|
| 项目访问权限 | 项目成员。 |
| 访问级别 | - 若要查看与测试相关的工作项或运行测试用例:至少 基本 访问权限。 具有 利益干系人 访问权限的用户无权访问测试计划。 - 要练习所有测试相关功能:基本 + 测试计划访问级别或以下一种 Visual Studio 订阅: - 企业 - 测试专家 - MSDN 平台 |
| 权限 |
区域路径权限: - 若要添加或修改测试计划、测试套件、测试用例或其他基于测试的工作项类型:编辑此节点中的工作项设置为“允许”。 - 若要修改测试计划属性,例如生成和测试设置:管理设置为“允许”的测试计划。 - 若要创建和删除测试套件,请从测试套件中添加和删除测试用例,或更改与测试套件关联的测试配置:管理设置为“允许”的测试套件。 项目级权限: - 若要查看、创建或删除测试运行,请将查看测试运行、创建测试运行和删除测试运行的权限设置为“允许”。 - 若要管理测试配置或测试环境:管理测试配置和管理设置为“允许”的测试环境。 - 若要向基于测试的工作项添加新标记:标记定义设置为允许。 - 若要永久删除基于测试的工作项:永久删除设置为“允许”的工作项。 |
有关详细信息,请参阅 手动测试访问和权限。
此外:
| 类别 | 要求 |
|---|---|
| 管道权限 | 若要从测试计划运行自动测试,需要发布权限(创建发布、 管理部署、 编辑发布阶段)。 有关详细信息,请参阅发布权限。 |
| 工具 | Visual Studio 2017 或更高版本(企业版或专业版)以关联来自Visual Studio的测试。 如果从 Azure DevOps Web 门户关联测试,则不需要。 |
步骤 1:创建自动测试
使用任何受支持的框架编写自动化测试。 将测试项目签入 Azure Repos 或一个已连接的 GitHub 仓库。
支持的框架
| Framework | 在 Visual Studio 中关联 | 在 Azure DevOps 中关联 |
|---|---|---|
| MSTest v1/v2 | 是 | 是 |
| NUnit | 是 | 是 |
| xUnit | 是 | 是 |
| Selenium | 是 | 是 |
| 编码的 UI 测试 | 是 | 是 |
| Python(PyTest) | 否 | 是 |
| Java (马文/格雷德尔) | 否 | 是 |
有关编写在 CI/CD 管道中可靠运行的 UI 测试的指导,请参阅 UI 测试注意事项。 有关分步 Selenium 示例,请参阅 使用 Selenium 执行 UI 测试。
步骤 2:设置生成管道
创建一个构建流水线,用于编译测试项目并产生包含测试二进制文件的工件。 支持经典管道和 YAML 管道。
- 如果没有管道,请创建第一个管道 。
- 确保管道构建测试项目,并将测试二进制文件发布为生成构件。
- 使用 Visual Studio 测试任务或 Azure 测试计划任务在管道中运行和报告测试。
- 如果管道运行测试,结果将自动显示在管道运行的 “测试 ”选项卡上。
若要从非Microsoft测试运行程序发布测试结果,请使用 Publish 测试结果任务。
步骤 3:将自动测试与测试用例相关联
将测试方法与测试用例工作项相关联时,可以获得以下优势:
- 测试计划的按需执行
- 要求可追溯性 - 当测试用例链接到用户情景时,自动化结果会显示要求级别质量
- 统一报告 - 自动和手动测试结果一起显示在测试运行中心
可以从 Visual Studio 或 Azure DevOps 网络门户 关联测试:
- Visual Studio - 打开测试资源管理器,选择测试方法,然后选择关联到 Test Case。 支持.NET框架(MSTest、NUnit、xUnit、Selenium、编码的 UI)。
- Azure DevOps 门户 - 从管道测试结果或直接从测试用例工作项中进行关联。 支持所有框架,包括Python和Java。
有关完整说明,请参阅 将自动测试与测试用例相关联。
重要
可以将测试方法与多个测试用例相关联,但每个测试用例只能有一个关联的测试方法。
步骤 4:运行自动测试
从测试计划运行(按需)
直接从 Azure Test Plans 触发自动测试,而无需设置计划生成。 选择特定的测试用例,并针对测试计划设置中配置的生成和发布管道运行它们。
有关分步说明,请参阅 从测试计划运行自动测试。
从管道 (CI/CD) 运行
在生成或发布管道中运行自动测试。 测试会在每次提交或部署时自动执行,结果显示在管道的 “测试” 选项卡上。
- 并行运行测试 - 跨多个代理分配测试以减少执行时间。 请参阅 并行运行 VSTest 测试 或 并行运行任何测试。
- 仅运行受影响的测试 - 使用测试影响分析自动选择受代码更改影响的测试。 请参阅 测试影响分析。
步骤 5:查看测试结果并跟踪质量
测试结果
- 在测试计划中 - 在 测试运行中心中查看自动和手动测试的通过和失败结果。 选择任何测试运行以查看详细的结果、错误消息和堆栈跟踪。
- 在管道内 - 在任何管道运行的测试选项卡上查看测试结果。 请参阅 “查看测试结果”。
分析和趋势
- 测试分析 - 确定最高失败测试、跟踪通过率趋势,以及跨生成分析故障模式。 请参阅 测试分析。
- 代码覆盖率 - 用于衡量哪些代码部分由测试运行。 请参阅 “查看代码覆盖率结果”。
- Flaky 测试管理 - 检测和管理具有非确定性结果的测试,以防止生成失败。 请参阅 管理不稳定的测试。
要求可追溯性
将测试用例链接到要求(用户情景、PBIs)时,自动测试结果会显示要求级别的质量。 跟踪哪些需求通过、未通过或缺少测试覆盖。 请参阅 要求可追溯性。