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

确定最佳测试套件配置

Microsoft Playwright Testing Preview 使你能够通过提高云规模的并行度来加快 Playwright 测试的执行速度。 几个因素会影响测试套件的完成时间。 确定用于减少测试套件完成时间的最佳配置特定于应用程序,需要试验。 本文介绍了为测试配置并行度的不同级别、影响测试持续时间的因素,以及如何确定最佳配置以尽量减少测试完成时间。

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

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

Line chart that shows the relation between the number of parallel workers and the test suite completion time for different run environments.

工作进程

Playwright 中,所有测试都在工作进程中运行。 这些进程由 Playwright 测试运行程序独立运行,并行运行。 所有辅助角色都有相同的环境,每个进程都启动自己的浏览器。

通常,增加并行辅助角色的数量可以减少完成完整测试套件所需的时间。 可以在 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

或者,可以使用此设置指定辅助角色playwright.service.config.tsworkers数:

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

影响完成时间的因素

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

因子 测试持续时间的影响
客户端计算机计算资源 工作进程仍在客户端计算机(开发人员工作站或 CI 代理计算机上)上运行,并且需要与远程浏览器通信。 增加并行辅助角色的数量可能会导致客户端计算机上的资源争用,并降低测试速度。
测试代码的复杂性 随着测试代码的复杂性增加,完成测试的时间也可能增加。
客户端计算机和远程浏览器之间的延迟 辅助角色在客户端计算机上运行,并与远程浏览器通信。 根据托管浏览器的 Azure 区域,网络延迟可能会增加。 了解如何在 Microsoft Playwright Testing 中优化区域延迟。
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 测试配置设置,例如测试 超时跟踪 设置或 重试