4. Playwright
1. E2E(End to End) Test
What is End-to-End (E2E) Testing?
End To End 테스트 애플리케이션의 흐름을 처음부터 끝까지 테스트하는 것
응용 프로그램 흐름이 예상대로 작동하는지 확인하기 위해 처음부터 끝까지 전체 소프트웨어 제품을 테스트하는 방법 제품의 시스템 종속성을 정의하고 통합된 모든 부분이 예상대로 함께 작동하도록 함 주요 목적은 실제 사용자 시나리오를 시뮬레이션하고, 통합 및 데이터 무결성을 위해 테스트 중인 시스템과 해당 구성 요소의 유효성을 검사하여 최종 사용자의 경험에서 테스트하는 것
장점
테스트 범위 확장
애플리케이션의 정확성을 보장
출시 기간 단축
비용 절감
버그 감지
E2E 테스트 도구
Headless Browser
PhantomJS : 크롬을 헤드리스 브라우저로 테스트 (Headless Chrome이 나와서 개발 중단)
Puppeteer : Headless Chrome을 기반으로 구글에서 만든 도구
Playwright : MS에서 만든 테스트 지원 도구, 모든 브라우저를 지원
CodeceptJS : 단순하면서 읽기 편함
2. Playwright
Playwright playwright github Playwright Configuration Ashal의 Playwright
💡 웹 브라우저 기반 E2E 테스트 자동화 도구 API 제공 , 테스트 러너도 지원 Headless Chrome을 기반으로 한 Puppeteer를 계승하면서, 더 많은 웹 브라우저를 지원
API를 조작해서 자동화하거나, 크롤링할 때도 사용
🚨 주의점
진짜 작동하는 테스트를 하는 것이기 때문에 프로덕션에서 사용하면 안 됨 테스트 환경을 구축해놓고 돌려야 함
사용 방법
Playwright 패키지 설치
서버 띄우기
playwright.config.ts
파일 생성
playwright.config.ts
파일 생성headless: !!process.env.CI
: CI 환경이 잡혀있을 경우 헤드리스 로 띄우기(아닌 경우 그냥 띄움)실행 방법
tests/.eslintrc.js
파일 생성
tests/.eslintrc.js
파일 생성tests/home.spec.ts
파일 작성
tests/home.spec.ts
파일 작성💡 가능한 단순하게 작성하면 좋음
테스트 실행
.gitignore
파일에 에러 상황의 스크린샷 등이 담기는 test-results
디렉토리 추가
3. Headless Chrome
Headless Chrome headless browser
Headless Browser
그래픽 사용자 인터페이스(GUI)가 없는 웹 브라우저 화면에 뜨지 않고 뒤에서 실행되는 것 → 속도가 빠름 헤드리스 브라우저는 눈에 보이는 UI 셸이 필요하지 않은 자동화된 테스트 및 서버 환경을 위한 도구
구글 크롬 버전 59부터 브라우저의 원격 제어를 위한 네이티브 지원이 제공, Mac 및 Linux에서 사용 가능
사용 예시
실제 웹 페이지에 대해 테스트를 실행
브라우저가 URL을 렌더링하는 방법을 검사
테스트를 실행시키고 다른 작업을 할 때 (헤드리스가 아닌 경우, 포커스를 가져가서 다른 작업을 하기 불편함)
4. Puppeteer
Puppeteer 공식 문서 Overview of Puppeteer Getting Started with Headless Chrome
크롬 자동화를 위한 Node.js 라이브러리 DevTools 프로토콜을 통해 헤드리스 Chrome 또는 Chromium을 제어하기 위한 고급 API를 제공하는 노드 라이브러리
헤드리스 모드에서 실행되지만, 전체(non-headless) Chrome/Chromium에서 실행되도록 구성할 수도 있음
6. CodeceptJS
CodeceptJS CodeceptJS 3 시작하기 CodeceptJS 사용
인간 친화적인 E2E 테스팅 도구 단순하면서도 읽기 편함 → 협업과 소통이 편리 Playwright을 기본으로 쓸 수 있음
🥊 CodeceptJS vs Playwright
간단한 서비스는 CodeceptJS, 좀 더 복잡하고 자세한 내용을 처리하려면 Playwright을 사용
사용 방법
패키지 설치
package.json 파일의 들여쓰기가 변경됨에 주의
프로젝트 세팅
시나리오 작성
시나리오를 여러 개 작성할 수 있음
실행하기
Last updated