-
Notifications
You must be signed in to change notification settings - Fork 2
Description
벨로그를 살펴보다가 playwright이라는 것에 대해 알게 되었습니다.
Playwright
Playwright은 웹 애플리케이션을 자동으로 테스트하거나 크롤링할 수 있는 오픈 소스 라이브러리입니다.
웹 애플리케이션의 기능을 자동화하는 데 사용되며 테스트를 작성하거나 브라우저 상호작용을 자동화하는 데 유용합니다.
Playwright? Jest?
Playwright와 Jest는 모두 테스트 프레임워크 및 도구지만, 그 목적과 기능에는 중요한 차이가 있습니다.
두 도구는 함께 사용될 수 있지만, 각각 다른 역할을 수행합니다.
기능에서의 차이
Jest
Jest는 테스트 프레임워크로 JavaScript에서 테스트를 작성하고 실행하는 데 사용됩니다.
주로 단위 테스트(Unit Test), 통합 테스트(Integration Test), 스냅샷 테스트(Snapshot Test) 등 여러 종류의 테스트를 작성하는 데 사용됩니다.
또한 Jest는 모킹(Mock), 스파잉(Spy), 비동기 처리 등을 쉽게 다룰 수 있도록 돕는 다양한 기능을 제공하지만
DOM 조작이나 브라우저와의 상호작용을 직접 다루지는 않습니다.
Playwright
Playwright는 주로 웹 자동화 도구로, 브라우저에서 직접 웹 애플리케이션을 테스트하거나 크롤링할 때 사용됩니다.
즉, 브라우저 상호작용(클릭, 입력, 페이지 로드, 스크린샷 등)을 테스트하는 데 중점을 둡니다.
Playwright는 브라우저를 실제로 실행하여 웹 페이지와 상호작용하는 테스트를 지원합니다.
주요 용도에서의 차이
Jest
Jest는 단위 테스트와 기능 테스트에 주로 사용됩니다.
예를 들어, 함수가 올바르게 동작하는지, API 응답을 제대로 처리하는지, 상태 변화가 예상대로 일어나는지 등을 테스트합니다.
UI 테스트나 브라우저 자동화에는 적합하지 않으며, Jest 자체는 브라우저를 실행하지 않습니다.
Playwright
Playwright는 엔드 투 엔드(E2E) 테스트나 UI 테스트에 적합합니다.
사용자가 실제로 브라우저에서 상호작용하는 방식으로 웹 애플리케이션을 테스트할 수 있습니다.
예를 들어, 버튼을 클릭하고 페이지가 올바르게 로드되는지, 폼을 제출하고 그 결과를 확인하는 등의 테스트를 할 수 있습니다.
테스트 실행 환경
Jest
Jest는 Node.js 환경에서 테스트를 실행하며, 브라우저 없이도 동작할 수 있습니다.
Jest는 기본적으로 JS 코드의 단위 테스트에 초점을 맞추고 있습니다.
Jest를 사용할 때는 브라우저를 가상으로 구현하는 JS DOM 같은 도구를 통해 DOM 상호작용을 시뮬레이션할 수 있습니다.
Playwright
Playwright는 실제 브라우저에서 웹 애플리케이션을 테스트합니다.
즉, 브라우저 인스턴스를 띄워 실제로 페이지를 로드하고,
사용자가 수행할 수 있는 다양한 동작(클릭, 텍스트 입력, 페이지 이동 등)을 자동으로 처리하여 테스트합니다.
동작의 차이
Jest
Jest는 주로 함수 단위나 모듈 단위의 테스트를 처리하며,
DOM을 직접적으로 다루지는 않지만, React와 같은 라이브러리와 결합해 DOM 상호작용을 테스트할 수 있습니다.
(예: React Testing Library와 함께 사용)
Jest의 주된 목적은 코드의 로직이 예상대로 작동하는지 확인하는 것입니다.
Playwright
Playwright는 브라우저의 실제 동작을 자동화하고 테스트합니다.
페이지 로드, 사용자 입력, 화면의 변화 등을 감지하여 실제 웹 환경에서 발생하는 이벤트를 테스트합니다.
Playwright는 UI 요소들이 올바르게 작동하는지 확인하는 데 유용합니다.
Playwright + Jest
Playwright와 Jest는 함께 사용될 수 있습니다.
Playwright는 실제 브라우저에서 웹 페이지와 상호작용하는 자동화를 제공하고,
Jest는 이 자동화된 테스트를 실행하고, 결과를 확인하는 역할을 합니다.
예를 들어, Playwright로 브라우저 상호작용을 자동화한 후, Jest로 테스트 결과를 검증할 수 있습니다.
이를 통해 Playwright는 브라우저에서의 상호작용을 자동화하고, Jest는 테스트 로직과 결과를 관리하는 역할을 합니다.