다음을 통해 공유


Playwright 작업 영역을 사용하여 로컬로 배포되거나 비공개로 호스트된 앱에 클라우드 호스팅 브라우저 사용

Playwright 작업 영역을 사용하여 로컬로 배포된 애플리케이션에 대한 엔드 투 엔드 테스트를 실행하는 방법을 알아봅니다. Playwright 작업 영역은 대규모로 Playwright 테스트를 실행하기 위해 클라우드 호스팅 원격 브라우저를 사용합니다. 이 서비스를 사용하여 localhost에서 또는 인프라에서 호스팅하는 앱에 대한 테스트를 실행할 수 있습니다.

Playwright를 사용하면 클라이언트 컴퓨터에서 사용할 수 있는 네트워크를 원격 브라우저에 노출할 수 있습니다. 네트워크를 노출하면 추가 방화벽 설정을 구성할 필요 없이 Playwright 테스트 코드에서 로컬 리소스에 연결할 수 있습니다.

로컬 네트워크를 노출하도록 Playwright 구성

로컬 네트워크와 리소스를 원격 브라우저에 노출하려면 Playwright에서 exposeNetwork 옵션을 사용할 수 있습니다. 극작가 설명서에서 exposeNetwork 옵션에 대해 자세히 알아봅니다.

규칙 목록을 사용하여 하나 이상의 네트워크를 지정할 수 있습니다. 예를 들어, 테스트/준비 배포 및 localhost: *.test.internal-___domain,*.staging.internal-___domain,<loopback>을 노출합니다.

exposeNetwork에서 playwright.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