使用测试计划运行自动测试
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
在测试计划中自动执行测试用例,并直接从 Azure Test Plans 运行它们。 自动测试提供以下优势:
- 对于可能不太熟悉在生成或发布工作流中运行测试的测试人员来说,用户友好的过程。
- 按需运行所选测试的灵活性,而不是在生成或发布工作流中运行所有符合筛选条件的测试的计划测试。
- 能够重新运行由于测试基础结构问题而失败的几个测试,或者你拥有包含针对失败测试的修补程序的新内部版本。
先决条件
- 项目访问: 确保已 添加到项目。
- 访问级别: 确保至少 具有基本 访问权限或更高版本。
- 有关详细信息,请参阅 手动测试访问权限和权限。
- 还必须具有以下项。
- 包含与使用 Visual Studio 2017 或 Visual Studio 2015 或更早版本的自动测试方法关联的自动测试的测试计划。
- 生成包含测试二进制文件的生成 管道 。
- 要测试的应用。 可以将应用部署为 生成和发布工作流 的一部分,还可以将其用于按需测试。
- 用于创建和管理发布、编辑发布环境和管理部署的权限。 有关详细信息,请参阅 发布权限。
设置你的环境
在 “测试计划 ”页中,选择测试计划,打开快捷菜单,然后选择“ 测试计划设置”。
在“测试计划设置”对话框中,选择生成生成包含测试二进制文件的生成管道。 然后,你可以选择要测试的特定内部版本号,或者让系统在运行测试时自动使用最新版本。
需要从 “从测试管理器 模板运行自动测试”创建的发布管道,以便从 Azure 测试计划中的 测试计划运行测试。 如果已有使用此模板创建的发布管道,请选择它,然后选择发布管道中的现有阶段进行测试执行。 否则,请在对话框中选择“新建”,以创建包含已添加 Visual Studio 测试任务的单个阶段的新发布管道。
根据需要为发布管道和阶段分配有意义的名称。
如果已在代理计算机上安装 Visual Studio,请跳过此步骤。 否则,将 Visual Studio 测试平台安装程序任务 添加到管道定义。
将 Visual Studio 测试任务 添加到发布管道,并按如下所示对其进行配置:
验证是否选择了 Visual Studio 测试任务版本 2。 版本号显示在任务设置面板的下拉列表中。
验证 “选择使用的测试” 是否设置为 “测试运行”。 此设置是什么意思?
对于 “测试平台版本 ”设置,请选择“ 由工具安装程序安装”。
如果有在物理浏览器或厚客户端上运行的 UI 测试,请确保代理设置为以启用 autologon 的交互式进程的形式运行。 在对生成或发布进行排队之前,必须设置代理以交互方式运行。 “ 测试组合”包含 UI 测试 复选框不会自动在交互模式下配置代理 - 仅用作提醒以适当方式配置代理以避免故障。
如果在无外设浏览器中运行 UI 测试,则不需要交互式进程配置。
选择测试平台的预配方式,以及 Visual Studio 的版本或测试计算机上安装的测试平台的位置。
如果测试需要 输入参数 (如应用 URL 或数据库连接字符串),请从生成项目中选择相关设置文件。 如果项目中不包含此文件,可以使用 生成管道中的发布生成项目 任务在放置位置发布设置文件。 在以下示例中,应用程序 URL 在运行设置文件中公开,并被重写以使用 替代测试运行参数 设置将其设置为过渡 URL。
有关 Visual Studio 测试任务的选项设置的信息,请参阅 Visual Studio 测试任务。
选择 “代理”作业 项,并验证部署队列是否设置为包含要运行测试的计算机的部署队列。 如果测试需要代理池中的特殊计算机,则可以添加在运行时选择的要求。
通过将并行度设置为多个执行并指定代理数,可以最大程度地减少测试时间。
注意
如果在物理浏览器(如 IE、Firefox 或 Chrome)上运行 UI 测试(如 CodeUI 或 Selenium),则计算机上的代理必须以交互模式运行,而不是作为服务运行。 更多详细信息。
在发布管道的“管道”页中,验证包含测试二进制文件的生成管道是否作为项目源链接到此发布管道。
保存 发布管道。
如果在此示例的步骤 2 的“测试计划设置”对话框中选择了 “新建 ”,请返回到包含测试计划设置的浏览器页面。 在“测试计划设置”对话框中,选择保存的发布管道和阶段。
运行自动测试
在Test Plans Web 门户中,打开测试计划并选择包含自动测试的测试套件。
选择要运行的测试,打开 “运行 ”菜单,然后选择“ 运行测试”。
这些测试的测试二进制文件必须在生成管道生成的生成项目中可用。
选择“确定”以启动测试过程。 系统检查是否仅选中自动测试(忽略任何手动测试),验证阶段以确保 Visual Studio 测试任务存在并具有有效设置,检查用户为所选发布管道创建发布的权限,创建测试运行,然后触发发布到所选阶段。
选择“ 查看测试运行 ”以查看测试进度并分析失败的测试。 测试结果包含调试失败测试的相关信息,例如错误消息、堆栈跟踪、控制台日志和附件。
测试执行完成后,Azure Test Plans的“运行”页会显示测试结果。 “ 运行摘要 ”页显示运行概述。
有一个用于运行测试的版本的链接,这样,如果稍后需要返回并分析结果,可以轻松找到运行测试的版本。 如果要打开发布以查看发布日志,也请使用此链接。
注意
自动测试结果不支持手动附件文件。
“ 测试结果 ”页列出了测试运行中每个测试的结果。 选择一个测试以查看失败测试的调试信息,例如错误消息、堆栈跟踪、控制台日志和附件。
打开“Test Plans”页,选择测试计划以查看测试的状态(如果在测试执行完成后更新了测试)。 选择一个测试以查看最近的测试结果。
常见问题解答
请参阅以下有关 Azure 测试计划的常见问题(常见问题解答)。
问:需要哪些权限才能从Azure Test Plans运行自动测试?
答: 必须是项目参与者,或者具有以下权限:
- 创建发布
- 管理版本
- 编辑发布阶段
- 管理部署
有关详细信息,请参阅 发布权限。
问:是否可以替代在测试运行的特定实例的测试计划级别设置的生成或阶段?
答: 是的,可以使用 “使用选项运行” 命令执行此操作。 打开左侧列中测试套件的快捷菜单,然后选择“ 使用选项运行”。
在“使用选项运行”对话框中输入以下值,然后选择“ 确定” :
- 测试类型和运行器: 使用发布阶段选择“自动测试”。
- 生成:选择具有测试二进制文件的生成。 测试结果与此生成相关联。
- 发布管道:从可以使用所选生成项目的发布管道列表中选择一个管道。
- 发布阶段:选择发布管道中配置的阶段的名称。
问:为何使用发布阶段来运行测试?
答: Azure Pipelines 提供引人注目的业务流程工作流,用于获取作为项目的测试二进制文件并运行测试。 此工作流共享计划测试工作流中使用的相同概念,这意味着在计划工作流中运行测试的用户很容易适应:例如,通过克隆现有的计划测试发布管道。
另一个主要好处是任务目录中提供了一组丰富的任务,这些任务允许在运行测试之前和之后执行一系列活动。 示例包括准备和清理测试数据、创建和清理配置文件等。
问:如何在 Visual Studio 测试任务版本 2 中选择“测试运行”?
答: 测试管理子系统使用测试运行对象传递为执行选择的测试列表。 测试任务查找测试运行标识符,提取容器和测试方法名称等测试执行信息,运行测试,更新测试运行结果,并设置与测试运行中的测试结果关联的测试点。 从审核的角度来看,Visual Studio 任务提供从历史版本和测试运行标识符到为按需测试执行提交的测试的跟踪。
问:代理应以交互模式还是以服务的形式运行?
答: 如果运行 UI 测试(如 编码的 UI 或 Selenium 测试),则测试计算机上的代理必须在启用了 autologon 的交互模式下运行,而不是作为服务运行,以允许代理启动 Web 浏览器。 如果使用无外设浏览器(如 PhantomJS),代理可以作为服务或交互模式运行。 有关详细信息,请参阅 生成和发布代理、 在 Windows 上部署代理和 代理池。
问:在哪里可以找到有关如何运行 Selenium 测试的详细文档?
答: 请参阅 Selenium 测试入门。
问:如果我为同一测试选择多个配置,会发生什么情况?
答: 目前,按需工作流无法识别配置。
问:如果需要从不同版本下载产品二进制文件和测试二进制文件,该怎么办? 或者,如果需要从源(如 Jenkins)获取项目?
答: 当前功能针对使用 Azure Pipelines 工作流按需测试的单个团队生成进行了优化。 我们基于用户反馈评估对多项目版本的支持,包括非 Azure Pipelines 项目(如 Jenkins)。
问:我已有计划的测试发布管道。 是否可以重复使用同一管道来按需运行测试,或者是否应创建新管道?
答:建议使用单独的发布管道和阶段进行Azure Test Plans中的按需自动测试,因为:
你可能不希望每次想要运行一些按需测试时部署应用。 计划的测试阶段通常设置为部署产品,然后运行测试。
每次按需运行都会触发新版本。 如果许多测试人员每天执行一些按需测试运行,则计划的测试发布管道可能会因这些运行的版本而过载,因此很难找到包含计划测试和部署到生产的管道触发的版本。
你可能想要使用测试运行标识符将 Visual Studio 测试任务配置为输入,以便跟踪触发发布的内容。 有关详细信息,请参阅 Visual Studio 测试任务中选择“测试运行(按需运行)”的工作原理?
问:是否可以触发这些运行并在 Microsoft 测试管理器中查看结果?
答: 不是。 Microsoft测试管理器不支持针对 Team Foundation 内部版本运行自动测试。 它仅适用于基于 Web 的 Azure Pipelines 接口。 所有新的手动和自动化测试产品开发投资都位于基于 Web 的界面中。 Microsoft 测试管理器未计划进一步开发。 请参阅 Microsoft 测试管理器用法指南。
问:我的团队中有多个测试人员。 他们是否可以使用相同的发布管道并行运行来自不同测试套件或测试计划的测试?
答: 如果出现以下问题,他们可以使用同一发布管道来触发多个并行测试运行:
与阶段关联的代理池具有足够的代理来满足并行请求。 如果没有足够的代理不可用,仍可以触发运行,但会释放队列进行处理,直到代理可用。
有足够的作业来启用并行作业。 有关详细信息,请参阅 Azure Pipelines 中的并行作业或 TFS 中的并行作业。
测试人员不会并行运行相同的测试。 这样做可能会导致根据执行顺序覆盖结果。
若要使多个不同的测试运行并行执行,请设置 Azure Pipelines 阶段触发器选项,以便在 等待部署多个版本时的行为 ,如下所示:
如果应用程序支持从不同源并行运行的测试,请将此选项设置为 允许同时部署多个版本。
如果应用程序不支持从不同源并行运行的测试,请将此选项设置为 一次只允许一个活动部署。
问:如何实现将参数从生成或发布管道传递到测试代码?
答: 使用 runsettings 文件将值作为参数传递给测试代码。 例如,在包含多个阶段的版本中,可以将相应的应用 URL 传递给每个阶段中的每个测试任务。 必须在 Visual Studio 测试任务中指定 runsettings 文件和匹配参数。
问:如果我的测试未运行,我应该注意哪些典型的错误场景或问题?
答: 检查并解决问题,如下所示:
选择生成后,不会显示要运行测试的发布管道和阶段。
- 确保生成生成的生成管道作为发布管道的“ 项目 ”选项卡中的主要项目进行链接。
我收到一个错误,指出我没有足够的权限来触发发布。
- 在发布管道的“安全”菜单中为用户配置“创建发布”和管理部署权限。 请参阅 发布权限。
我收到一个错误,指出未找到自动测试。
- 检查所选测试的自动化状态。 在测试用例的工作项中执行此操作,或使用 Azure 测试计划中的“列”选项链接将自动化状态列添加到测试列表。 有关详细信息,请参阅 先决条件部分。
我的测试未执行,我怀疑发布管道不正确。
- 使用 “运行摘要 ”页中的链接访问用于运行测试的发布实例,并查看发布日志。
我的测试进入错误状态,或者即使在发布到阶段触发后仍保持“正在进行”。
- 检查所选的发布阶段是否选择了正确的任务和版本。 必须使用 Visual Studio 测试 任务的版本 2 或更高版本。 不支持任务版本 1 和 运行功能测试 任务。