Lindsay's technical blog

Development/Library

테스트 오픈 소스 자동화 라이브러리, Playwright란 무엇인가?

lindsay-qa 2024. 6. 23. 15:32

Playwright는 Microsoft 에서 개발하고 2020년 1월 31일에 출시한 브라우저 테스트 및 웹 스크래핑을 위한 오픈 소스 자동화 라이브러리 입니다.

Playwright는 단일 API를 사용하여 Chromium , Firefox 및 WebKit 에서 브라우저 작업을 자동화하는 기능을 제공합니다.

또한 JavaScript , Python , C# 및 Java 와 같은 프로그래밍 언어를 지원하지만 기본 API는 원래 Node.js 로 작성되었습니다. 네트워크 차단 및 다중 브라우저 컨텍스트를 포함한 모든 최신 웹 기능을 지원하고 자동 대기 기능을 제공하여 테스트의 결함을 줄입니다.

 

 

Fast and reliable end-to-end testing for modern web apps | Playwright

Cross-browser end-to-end testing for modern web apps

playwright.dev

 

  • 특징
  1. 모든 브라우저 / 모든 플랫폼 / 하나의 API
    1. 크로스 브라우저 : Playwright는 Chromium, WebKit 및 Firefox를 포함한 모든 최신 렌더링 엔진을 지원합니다.
    2. 크로스 플랫폼 : Windows, Linux 및 macOS, 로컬 또는 CI(헤드리스 또는 헤드 없음)에서 테스트하세요.
    3. 교차 언어 : TypeScript , JavaScript , Python , .NET , Java 에서 Playwright API를 사용하세요.
    4. 모바일 웹을 테스트해 보세요. Android 및 모바일 Safari용 Google Chrome의 기본 모바일 에뮬레이션입니다. 동일한 렌더링 엔진이 데스크탑과 클라우드에서 작동합니다.
  2. Resilient(탄력성) • No flaky tests(불안정한 테스트 없음)
    1. Auto-wait : Playwright는 작업을 수행하기 전에 요소가 실행 가능해질 때까지 기다립니다. 또한 다양한 자기 성찰 이벤트가 있습니다. 이 두 가지를 결합하면 불안정한 테스트의 주요 원인인 인위적인 시간 초과가 필요하지 않습니다.
    2. Web-first assertions : Playwright assertions은 dynamic web을 위해 특별히 생성되었습니다. 필요한 조건이 충족될 때까지 검사가 자동으로 재시도됩니다.
    3. Tracing : 테스트 재시도 전략을 구성하고, 실행 추적, 비디오, 스크린샷을 캡처하여 플레이크를 제거합니다.
  3. No trade-offs(타협 없음) / No limits(제한 없음)
    1. 브라우저는 서로 다른 프로세스에서 서로 다른 출처에 속하는 웹 콘텐츠를 실행합니다. Playwright는 최신 브라우저 아키텍처에 맞춰 프로세스 외부에서 테스트를 실행합니다. 이를 통해 Playwright는 일반적인 진행 중인 테스트 실행기 제한 사항에서 벗어날 수 있습니다.
    2. Multiple everything : multiple tabs, multiple origins and multiple users 에 걸쳐 있는 테스트 시나리오입니다 . 다양한 사용자에 대해 다양한 컨텍스트를 사용하여 시나리오를 만들고 이를 서버에 대해 한 번의 테스트로 실행해 보세요.
    3. Trusted events : elements를 가리키고, 동적 컨트롤과 상호 작용하고, 신뢰할 수 있는 이벤트를 생성합니다. Playwright는 실제 사용자와 구별할 수 없는 실제 브라우저 입력 파이프라인을 사용합니다.
    4. Test frames, pierce Shadow DOM(프레임을 테스트하고 Shadow DOM을 뚫습니다.) : Playwright selectors는 Shadow DOM을 관통하여 프레임을 원활하게 입력할 수 있도록 합니다.
  4. Full isolation(완전 격리) / Fast execution(빠른 실행)
    1. Browser contexts : Playwright는 각 테스트에 대한 브라우저 컨텍스트를 만듭니다. 브라우저 컨텍스트는 새로운 브라우저 프로필과 동일합니다. 이는 오버헤드 없이 완전한 테스트 격리를 제공합니다. 새로운 브라우저 컨텍스트를 생성하는 데는 몇 밀리초밖에 걸리지 않습니다.
    2. 한 번 로그인해 보세요 : 컨텍스트의 인증 상태를 저장하고 모든 테스트에서 재사용합니다. 이는 각 테스트에서 반복적인 로그인 작업을 우회하면서도 독립적인 테스트를 완전히 격리합니다.
  5. Powerful Tooling
    1. Codegen : 작업을 기록하여 테스트를 생성합니다. 어떤 언어로든 저장하세요. 
    2. Playwright inspector : 페이지를 검사하고, selectors를 생성하고, 테스트 실행을 단계별로 진행하고, 클릭 지점을 확인하고, 실행 로그를 살펴보세요. 
    3. Trace Viewer테스트 실패를 조사하기 위해 모든 정보를 캡처합니다. Playwright 추적에는 테스트 실행 스크린캐스트, 라이브 DOM 스냅샷, 작업 탐색기, 테스트 소스 등이 포함되어 있습니다.

 

 

출처 : https://en.wikipedia.org/wiki/Playwright_(software)