요새 업무에서 Playwright를 사용하고 있는데, 이게 매우 좋은 경험입니다. 분명 몇 해 전까지는 여러모로 기능이 여러모로 부족한 상태이기도 하고, 언어는 자바스크립트만 제공하는 상태였는데요, 요근래 업무에서 사용해보려고 다시 보니 지원하는 언어나, 브라우저도 많이 늘어난 상태였습니다.
가만 생각해보니 오히려 Selenium을 사용해야할 이유가 점점 없어지는 것 같더라구요.
이번 포스트에서는 간단히 Playwright에 대한 소개글과 함께 셀레니움과의 비교하는 내용을 작성해보겠습니다.
Playwright is an open-source automation library for browser testing and web scraping developed by Microsoft and launched on 31 January 2020, which has since become popular among programmers and web developers.
Playwright was created specifically to accommodate the needs of end-to-end testing. Playwright supports all modern rendering engines including Chromium, WebKit, and Firefox. Test on Windows, Linux, and macOS, locally or on CI, headless or headed with native mobile emulation.
The Playwright library can be used as a general purpose browser automation tool, providing a powerful set of APIs to automate web applications, for both sync and async Python.
위키백과와 공식문서에 기재되어져있는대로, Playwright은 E2E testing을 위해 Microsoft에서 만든 오픈소스 테스팅 프레임워크입니다.
이전에 Google의 Puppeteer 팀의 개발진들이 MS로 이동하면서 새롭게 만든 프레임워크라고 하는 말이 있긴했는데 그것이 사실인지는 잘 모르겠습니다.
playwright의 기능으로는 여러가지가 있습니다.
codegen
기본 내장Playwright inspector
Trace viewer
Selenium과 Playwright은 웹스크래핑이나, UI 테스팅 등에서 상당히 유사한 기능 등을 가지고 있습니다. 제가 보기엔 대부분의 경우에서 Playwright가 좋아보이긴
하지만, 그럼에도 불구하고 몇가지 차이점을 기재해보겠습니다.
assert
의 경우 특정 조건이 안된다면 바로 실패해버리지만, Playwright의 경우 locator에 대한 내장 assertion(expect
) 기능이 존재합니다. 해당 기능은 flakyness를 방지하기 위해 일정시간동안 테스트 조건을 만족하는지를 확인하기 위해 re-try 동작을 수행합니다.Selenium Grid
를 통해 Remote로 병렬 실행이 가능합니다.https://dev.to/azure/16-test-automation-with-playwright-odk
여기까지가 제가 업무하면서 느끼는 Selenium과 Playwright의 차이점입니다. 좀 더 Playwright를 이용하면서 느끼는 것들을 천천히 기록해보고자 합니다.
ref