次の方法で共有


Playwright ワークスペースを使用してローカルにデプロイまたはプライベートにホストされるアプリにクラウドホストブラウザーを使用する

Playwright ワークスペースを使用して、ローカルにデプロイされたアプリケーションに対してエンドツーエンドのテストを実行する方法について説明します。 Playwright ワークスペースでは、大規模な Playwright テストを実行するために、クラウドでホストされたリモート ブラウザーを使用します。 このサービスを使用して、localhost またはインフラストラクチャでホストするアプリのテストを実行できます。

Playwright を使用すると、クライアント コンピューターで使用可能なネットワークをリモート ブラウザーに公開できます。 ネットワークを公開するとき、追加のファイアウォール設定を構成しなくても、Playwright テスト コードからローカル リソースに接続できます。

ローカル ネットワークを公開するように Playwright を構成する

ローカルのネットワークとリソースをリモート ブラウザーに公開するには、Playwright の exposeNetwork オプションを使用します。 exposeNetwork オプションの詳細は、Playwright のドキュメントで確認してください。

規則の一覧を使用して、1 つまたは複数のネットワークを指定できます。 たとえば、テスト/ステージング デプロイおよび localhost を公開するには、*.test.internal-domain,*.staging.internal-domain,<loopback> のように指定します。

exposeNetworkplaywright.service.config.tsオプションを構成できます。 次の例は、localhost 規則を使用して <loopback> ネットワークを公開する方法を示しています。 localhost を、サービスに対して有効にするドメインに置き換えることもできます。

import { createAzurePlaywrightConfig, ServiceOS } from "@azure/playwright";
import { defineConfig } from "@playwright/test";
import { DefaultAzureCredential } from "@azure/identity";
import config from "./playwright.config";

export default defineConfig(
  config,
  createAzurePlaywrightConfig(config, {
    exposeNetwork: '<loopback>', // Allow service to access the localhost.
    credential: new DefaultAzureCredential()
  }),
);

Playwright テスト コードで localhost を参照し、Playwright ワークスペースを使用してクラウドでホストされているブラウザーでテストを実行できるようになりました。

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

セットアップ ファイルで ExposeNetwork オプションを構成できます。 次の例は、localhost 規則を使用して <loopback> ネットワークを公開する方法を示しています。 localhost を、サービスに対して有効にするドメインに置き換えることもできます。

using Azure.Developer.Playwright.NUnit;
using Azure.Developer.Playwright;
using Azure.Identity;
using System.Runtime.InteropServices;
using System;

namespace PlaywrightService.SampleTests; // Remember to change this as per your project namespace

[SetUpFixture]
public class PlaywrightServiceNUnitSetup : PlaywrightServiceBrowserNUnit
{
    public PlaywrightServiceNUnitSetup() : base(
        credential: new DefaultAzureCredential(),
        options: new PlaywrightServiceBrowserClientOptions()
        {
            ExposeNetwork = "<loopback>"
        }
    )
    {
        // no-op
    }
}

Playwright テスト コードで localhost を参照し、Playwright ワークスペースを使用してクラウドでホストされているブラウザーでテストを実行できるようになりました。

dotnet test -- NUnit.NumberOfTestWorkers=20