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

快速入门:使用 Playwright Workspaces 大规模运行端到端测试

在本快速入门中,你将了解如何使用 Playwright Workspaces 通过高度并行的云浏览器运行 Playwright 测试。 使用云基础结构跨多个浏览器、设备和操作系统验证应用程序。

完成本快速入门后,你将拥有一个 Playwright 工作区,用于大规模运行 Playwright 测试。

先决条件

创建工作区

要开始在云浏览器中运行 Playwright 测试,首先需要创建 Playwright 工作区。

  1. 登录到 Azure 门户

  2. 选择门户左上角的菜单按钮,然后选择“创建资源”

    显示用于创建新资源的 Azure 门户菜单的屏幕截图。

  3. 在搜索框中输入 Playwright Workspaces

  4. 选择“Playwright Workspaces”卡,然后选择“创建”

    显示包含 Playwright Workspaces 搜索结果的 Azure 市场搜索页的屏幕截图。

  5. 提供以下信息以配置新的 Playwright 工作区:

    字段 DESCRIPTION
    订阅 选择要用于此 Playwright 工作区的 Azure 订阅。
    资源组 选择现有资源组。 或者选择“新建”,然后为新资源组输入唯一名称
    名称 输入唯一名称以标识工作区。
    该名称只能包含字母数字字符和连字符,长度介于 3 到 24 个字符之间。
    位置 选择要托管工作区的地理位置。
    此位置还决定了测试执行结果的存储位置。

    注释

    (可选)可以在“标记”选项卡上配置更多详细信息。标记是名称/值对,通过将相同的标记应用到多个资源和资源组,可以对资源进行分类并查看合并的账单

  6. 完成资源配置后,选择“查看 + 创建”

  7. 查看所有配置设置,然后选择“创建”以开始部署 Playwright 工作区

    该过程完成后,会显示部署成功消息。

  8. 若要查看新工作区,请选择“转到资源”

    显示 Azure 门户中部署完成信息的屏幕截图。

安装 Playwright Workspaces 包

要使用该服务,请安装 Playwright Workspaces 包。

npm init @azure/playwright@latest

这会生成一个 playwright.service.config.ts 文件,该文件用于引导并验证 Playwright 与 Playwright Workspaces 之间的连接。

如果已有此文件,包会要求你覆盖它。

要使用该服务,请安装 Playwright Workspaces 包。

dotnet add package Azure.Developer.Playwright.NUnit

配置浏览器终结点

在设置中,必须提供特定于区域的浏览器终结点。 终结点取决于在创建工作区时选择的 Azure 区域。

若要获取浏览器终结点 URL,请执行以下步骤:

  1. 使用 Azure 帐户登录到 Azure 门户,并导航到工作区。

  2. 选择“入门”页

    显示如何导航到“入门”页面的屏幕截图。

  3. 在将浏览器终结点添加到您的设置时,复制终结点 URL。

    请确保此 URL 在 PLAYWRIGHT_SERVICE_URL 环境变量中可用。

    显示如何复制服务终结点 URL 的屏幕截图。

配置你的环境

若要设置环境,必须使用在前面步骤中获取的值配置 PLAYWRIGHT_SERVICE_URL 环境变量。

建议使用dotenv模块管理环境。 使用dotenv,可以在.env文件中定义环境变量。

  1. dotenv模块添加到项目:

    npm i --save-dev dotenv
    
  2. 在 playwright.service.config.ts 中添加以下代码片段:

    require('dotenv').config();
    
  3. 在 Playwright 项目中的 .env 文件旁边创建 playwright.config.ts 文件:

    PLAYWRIGHT_SERVICE_URL={MY-REGION-ENDPOINT}
    

    请务必将 {MY-REGION-ENDPOINT} 文本占位符替换为之前复制的值。

设置服务配置

使用以下内容在项目中创建文件 PlaywrightServiceSetup.cs

using Azure.Developer.Playwright.NUnit;
using Azure.Identity;

namespace PlaywrightTests; // Remember to change this as per your project namespace

[SetUpFixture]
public class PlaywrightServiceNUnitSetup  : PlaywrightServiceBrowserNUnit
{
    public PlaywrightServiceNUnitSetup() : base(
        credential: new DefaultAzureCredential()
    ) 
    {}
}

注释

确保项目使用 Microsoft.Playwright.NUnit 版本 1.50 或更高版本。

设置身份验证

要在 Playwright 工作区中运行 Playwright 测试,需要对使用该服务运行测试的 Playwright 客户端进行身份验证。 这可能是本地开发计算机,也可能是 CI 计算机。

该服务提供两种身份验证方法:Microsoft Entra ID 和访问令牌。

Microsoft Entra ID 使用 Azure 凭据,这需要登录到 Azure 帐户进行安全访问。 或者,可以从 Playwright 工作区生成访问令牌并在设置中使用它。

使用 Microsoft Entra ID 设置身份验证

Microsoft Entra ID 是该服务的默认身份验证方法,也是建议的方法。 在本地开发计算机中,可以使用 Azure CLI 登录

az login

注释

如果你属于多个 Microsoft Entra 租户,请确保登录到你的工作区所属的租户。 可以从 Azure 门户获取租户 ID。 请参阅查找 Microsoft Entra 租户。 获取 ID 后,使用命令 az login --tenant <TenantID> 登录

使用访问令牌设置身份验证

可以从 Playwright 工作区生成访问令牌并在设置中使用它。 但是,我们强烈建议使用 Microsoft Entra ID 进行身份验证,因为它具有增强的安全性。 访问令牌虽然很方便使用,但其功能类似于长期密码,因此更容易泄露。

  1. 默认情况下,已禁用使用访问令牌的身份验证。 若要使用,请启用基于访问令牌的身份验证

  2. 使用访问令牌设置身份验证

谨慎

我们强烈建议使用 Microsoft Entra ID 对该服务进行身份验证。 如果使用访问令牌,请参阅如何管理访问令牌

使用 Playwright Workspace 大规模运行测试

现在,你已准备好使用 Playwright Workspaces 在云中运行 Playwright 测试的配置。 可以使用 Playwright CLI 运行测试,也可以使用Playwright Test Visual Studio Code 扩展

使用服务运行单个测试

使用 Playwright Workspaces 时,会根据测试总分钟数付费。 如果你是新用户或开始使用免费试用版,可以开始运行单个测试,而不是完整的测试套件,以避免耗尽免费试用限制。

验证测试是否成功运行后,可以使用服务运行更多测试以逐步增加测试负载。

执行以下步骤,使用 Playwright Workspace 运行单个 Playwright 测试:

要使用 Playwright CLI 通过 Playwright Workspaces 运行测试,请将服务配置文件作为命令行参数传递。

  1. 打开终端窗口。

  2. 输入以下命令,以在工作区的远程浏览器上运行 Playwright 测试:

    {name-of-file.spec.ts}文本占位符替换为测试规范文件的名称。

    npx playwright test {name-of-file.spec.ts} --config=playwright.service.config.ts
    

    测试完成后,可以在终端中查看测试状态。

    Running 1 test using 1 worker
        1 passed (2.2s)
    
    To open last HTML report run:
    
    npx playwright show-report
    

现在可以使用服务运行多个测试,也可以在远程浏览器上运行整个测试套件。

谨慎

根据测试套件的大小,超出分配的免费额度的测试分钟数和测试结果可能会产生额外费用。

使用服务运行完整测试套件

现在,你已验证可以使用 Playwright Workspaces 运行单个测试,可以大规模运行完整的 Playwright 测试套件。

执行以下步骤,使用 Playwright Workspace 运行完整的 Playwright 测试套件:

使用 Playwright Workspace 运行多个 Playwright 测试或完整测试套件时,可以选择将并行辅助角色的数量指定为命令行参数。

  1. 打开终端窗口。

  2. 输入以下命令,以在工作区的远程浏览器上运行 Playwright 测试套件:

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

    根据测试套件的大小,此命令最多可在 20 个并行辅助角色上运行测试。

    测试完成后,可以在终端中查看测试状态。

    Running 6 tests using 6 workers
        6 passed (18.2s)
    

使用上面创建的配置对服务管理的浏览器运行 Playwright 测试。

dotnet test -- NUnit.NumberOfTestWorkers=20

测试运行完成后,可以在终端中查看测试状态。

Starting test execution, please wait...

A total of 100 test files matched the specified pattern.

Passed!  - Failed:     0, Passed:     100, Skipped:     0, Total:     100, Duration: 59 s - PlaywrightTestsNUnit.dll (net7.0)

Workload updates are available. Run `dotnet workload list` for more information.

优化并行辅助角色配置

测试通过服务顺利运行后,请试验不同的并行辅助角色数量,以确定可最大程度缩短测试完成时间的最佳配置。

使用 Playwright Workspaces,最多可以运行 50 个并行辅助角色。 多个因素会影响项目的最佳配置,例如客户端计算机的 CPU、内存和网络资源、目标应用程序的负载处理容量以及测试中执行的操作类型。

可以在 Playwright CLI 命令行上指定并行辅助角色数,或者在 Playwright 服务配置文件中配置workers属性。

可以在 Playwright CLI 命令行上指定并行辅助角色数,或者在 NumberOfTestWorkers 文件中配置 .runsettings 属性。

详细了解如何确定优化测试套件完成的最佳配置

后续步骤

你已在 Azure 门户中成功创建了 Playwright 工作区,并在云浏览器中运行 Playwright 测试。

转到下一个快速入门,在 CI/CD 工作流中运行 Playwright 测试以设置连续端到端测试。