你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

确定最佳测试套件配置

Microsoft Playwright Testing 预览版可让你通过增加云规模的并行度来加快 Playwright 测试执行速度。 有几个因素会影响测试套件的完成时间。 确定减少测试套件完成时间的最佳配置与特定的应用程序相关,并且需要进行试验。 本文将介绍可在哪些级别为测试配置并行度、影响测试持续时间的因素,以及如何确定最佳配置以最大程度地缩短测试完成时间。

在 Playwright 中,可以使用工作进程来并行运行测试。 通过 Microsoft Playwright Testing,可以使用云托管的浏览器进一步提高并行度。 一般情况下,增加并行度可以减少完成测试套件的时间。 但是,添加更多工作进程并不一定会缩短测试套件的完成时间。 例如,客户端计算机计算资源、网络延迟或测试复杂性也可能影响测试持续时间。

下图提供了运行测试套件的示例。 通过使用 Microsoft Playwright Testing 而不是在本地运行测试套件,可以显著提高并行度并减少测试完成时间。 请注意,在使用该服务时,完成时间会达到最小限制,此后添加更多工作进程只能发挥最低的效果。 该图表还显示了在客户端计算机上使用更多计算资源如何对使用该服务运行的测试的完成时间产生积极影响。

折线图显示了不同运行环境中并行工作进程数量与测试套件完成时间之间的关系。

工作进程

Playwright 中,所有测试都在工作进程中运行。 这些进程属于操作系统进程,由 Playwright Test Runner 协调,以独立、并行的方式运行。 所有工作进程具有相同的环境,并且每个进程会启动自己的浏览器。

一般情况下,增加并行工作进程的数量可以减少完成整个测试套件所需的时间。 可以在 Playwright 文档中详细了解 Playwright 测试并行度

如上面的图表中所示,测试套件完成时间不会随着添加更多工作进程而持续减少。 还有其他因素会影响测试套件的持续时间

在本地运行测试

默认情况下,@playwright/test 会将工作进程数量限制为计算机 CPU 核心数量的 1/2。 你可以替代用于运行测试的工作进程数量。

在本地运行测试时,工作进程的数量限制为计算机上的 CPU 核心数量。 超过一定的数量后,添加更多工作进程会导致资源争用,从而减慢每个工作进程的速度并导致测试不稳定。

若要使用 --workers 命令行标志替代工作进程数量,请运行:

npx playwright test --workers=10

若要使用 workers 设置指定 playwright.config.ts 中的工作进程数量,请运行:

export default defineConfig({
  ...
  workers: 10,
  ...
});

使用服务运行测试

使用 Microsoft Playwright Testing 时,可以进一步增加云规模的工作进程数量。 使用该服务时,工作进程继续在本地运行,但资源密集型浏览器实例现在会在云中远程运行。

由于工作进程仍在客户端计算机(开发人员工作站或 CI 代理计算机)上运行,因此在添加更多工作进程时,客户端计算机仍可能成为可缩放执行的瓶颈。 了解如何确定最佳配置

可以在命令行中使用 --workers 标志指定工作进程的数量:

npx playwright test --config=playwright.service.config.ts --workers=30

或者,可以使用 workers 设置指定 playwright.service.config.ts 中的工作进程数量:

export default defineConfig({
  ...
  workers: 30,
  ...
});

影响完成时间的因素

除了并行工作进程的数量之外,还有几个因素会影响测试套件的完成时间。

因子 对测试持续时间的影响
客户端计算机计算资源 工作进程仍在客户端计算机(开发人员工作站或 CI 代理计算机)上运行,并且需要与远程浏览器通信。 增加并行工作进程的数量可能会导致客户端计算机上发生资源争用,并减慢测试速度。
测试代码的复杂性 随着测试代码的复杂性增加,完成测试的时间也可能会增加。
客户端计算机与远程浏览器之间的延迟 工作进程在客户端计算机上运行,并与远程浏览器通信。 根据浏览器所在的 Azure 区域,网络延迟可能会增加。 了解如何优化 Microsoft Playwright Testing 中的区域延迟
Playwright 配置设置 服务超时、重试或跟踪等 Playwright 设置可能会对测试完成时间产生不利影响。 在云中运行测试时,请试验这些设置的最佳配置。
目标应用程序的负载处理能力 使用 Microsoft Playwright Testing 运行测试使你能够以更高的并行度运行,从而导致目标应用程序的负载变得更高。 验证应用程序是否可以处理运行 Playwright 测试所产生的负载。

详细了解用于确定最佳配置的工作流,以最大程度地缩短测试套件的持续时间。

用于确定最佳配置的工作流

可最小化测试套件完成时间的最佳配置与特定的应用程序和环境相关。 若要确定最佳配置,请尝试不同级别的并行化、客户端计算机硬件配置或测试套件设置。

以下方法可帮助你找到使用 Microsoft Playwright Testing 运行测试的最佳配置:

1.确定测试完成时间目标

确定可接受的测试套件完成时间和每次测试运行的相关成本。

根据方案的不同,对测试完成时间的要求可能会有所不同。 在每次更改代码后运行端到端测试时,作为持续集成 (CI) 工作流的一部分,最大程度地缩短测试完成时间至关重要。 在计划以(夜间)批量运行的方式运行端到端测试时,你的要求可能不那么严格。

2.验证测试是否在客户端计算机上正常运行

在使用 Microsoft Playwright Testing 运行 Playwright 测试套件之前,请确保测试能够在客户端计算机上正常运行。 如果将测试作为 CI 工作流的一部分运行,请验证测试是否在 CI 代理计算机上正常运行。 确保使用至少两个并行工作进程运行测试,以验证测试是否正确配置为并行执行。 详细了解 Playwright 中的并行度

3.在 Microsoft Playwright Testing 中使用云托管的浏览器运行

测试正常运行后,请添加服务配置,以使用该服务在云托管的浏览器上运行测试。 验证测试是否能够从客户端计算机(开发人员工作站或 CI 代理计算机)继续正常运行。

通过快速入门:使用 Microsoft Playwright Testing 大规模运行 Playwright 测试获取入门知识。

4.验证 Azure 区域远程浏览器

Microsoft Playwright Testing 可以使用距离客户端计算机最近的 Azure 区域中的远程浏览器,或者使用在其中创建了工作区的固定区域。

了解如何优化工作区的区域延迟

5.使用并行工作进程的数量进行试验

试着使用并行工作进程的数量运行测试。 测量测试完成时间,并与之前设置的目标进行比较。

请注意,此时测试完成时间不再随着添加更多工作进程而减少。 转到下一步以进一步优化设置。

注意

在该服务的预览版中,每个工作区的并行工作进程数量限制为 50 个。 你可以请求提高工作区的此项限制

6.缩放客户端

随着并行度的提高,客户端计算机可能会遇到计算资源争用。 增加客户端计算机上的计算资源,例如通过选择更大的 GitHub 托管运行器

或者,如果存在硬件限制,你可以对客户端测试进行分片

重新运行测试并使用并行工作进程的数量进行试验。

7.更新 Playwright 测试配置设置

配置 Playwright 测试配置设置,例如测试超时跟踪设置或重试