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