다음을 통해 공유


최적의 테스트 도구 모음 구성 확인

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 테스트 실행기가 오케스트레이션한 OS 프로세스로, 병렬이지만 독립적으로 실행됩니다. 모든 작업자는 동일한 환경을 가지며 각 프로세스는 자체 브라우저를 시작합니다.

일반적으로 병렬 작업자 수를 늘리면 전체 테스트 도구 모음을 완료하는 데 걸리는 시간을 줄일 수 있습니다. 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 에이전트 컴퓨터에서 테스트가 올바르게 실행되는지 확인합니다. 최소 2명의 병렬 작업자로 테스트를 실행하여 테스트가 병렬 실행을 위해 올바르게 구성되었는지 확인합니다. Playwright의 병렬 처리에 대해 자세히 알아봅니다.

3. Microsoft Playwright Testing에서 클라우드 호스팅 브라우저로 실행

테스트가 올바르게 실행되면 서비스 구성을 추가하여 해당 서비스로 클라우드 호스팅 브라우저에서 테스트를 실행합니다. 클라이언트 컴퓨터(개발자 워크스테이션 또는 CI 에이전트 컴퓨터)에서 테스트가 계속 올바르게 실행되는지 확인합니다.

빠른 시작: Microsoft Playwright Testing을 통해 대규모 Playwright 테스트 실행을 시작합니다.

4. Azure 지역 원격 브라우저 확인

Microsoft Playwright Testing은 클라이언트 컴퓨터에 가장 가까운 Azure 지역의 원격 브라우저를 사용하거나 작업 영역이 만들어진 고정된 지역을 사용할 수 있습니다.

작업 영역의 지역별 대기 시간을 최적화하는 방법을 알아봅니다.

5. 병렬 작업자 수로 실험

테스트를 실행할 병렬 작업자 수로 실험해봅니다. 테스트 완료 시간을 측정하고 이전에 설정한 대상 목표와 비교합니다.

더 많은 작업자를 추가하면 테스트 완료 시간이 더 이상 줄어들지 않습니다. 다음 단계로 이동하여 설정을 좀 더 최적화합니다.

참고 항목

서비스가 미리 보기 상태인 동안 작업 영역당 병렬 작업자 수는 50개로 제한됩니다. 작업 영역에 대해 이 제한을 늘리도록 요청할 수 있습니다.

6. 클라이언트 스케일링

병렬 처리를 늘리면 클라이언트 컴퓨터에서 컴퓨팅 리소스 경합이 발생할 수 있습니다. 예를 들어 더 큰 GitHub 호스팅 실행기를 선택하여 클라이언트 컴퓨터에서 컴퓨팅 리소스를 늘립니다.

또는 하드웨어 제한 사항이 있는 경우 클라이언트 테스트를 분할할 수 있습니다.

테스트를 다시 실행하고 병렬 작업자 수로 실험해봅니다.

7. Playwright 테스트 구성 설정 업데이트

테스트 시간 제한, 추적 설정 또는 다시 시도와 같은 Playwright 테스트 구성 설정을 지정합니다.