테스트 락과 프레임·가시성 로케이터 강화
공유 자원 충돌을 막는 test locks와 프레임·가시성 로케이터, 추적·리포트 기능이 추가됐다.
교안에 영향
기존 안내에서 :visible CSS pseudo-class를 쓰라고 한 부분은 locator.visible()로 바꿔야 합니다.
요약
- test에 이름 있는 lock을 지정해 같은 락을 쓰는 테스트가 파일·워커·프로젝트를 넘어 동시에 실행되지 않게 됐다. - page.frameLocator()와 frame.frameLocator()가 선택자 없이도 모든 프레임을 찾아가며, locator.visible()로 보이는 요소만 고를 수 있게 됐다. - test.step()에 subtitle과 params가 추가되고, Playwright API step은 대상 locator와 인자를 구조적으로 리포터에 전달한다. - tracing.start()와 testOptions.trace의 snapshots에서 aria와 screen 캡처를 선택할 수 있으며, 새 API·명령행 옵션과 리포터가 추가됐다. - @playwright/experimental-ct-react 계열은 더 이상 갱신되지 않고, Ubuntu 20.04 지원이 종료됐다.
바뀐 것
새 기능
- test가 이름 있는 lock을 선언할 수 있게 되었고, 같은 락을 쓰는 테스트는 파일·worker·project를 넘어 동시에 실행되지 않습니다.
- test.describe()가 전체 그룹용 lock을 받을 수 있고, 한 테스트가 여러 lock을 동시에 보유할 수 있습니다.
- locator.visible()이 추가되어 보이는 요소만 매칭하는 로케이터를 제공하며, :visible CSS pseudo-class의 대체로 권장됩니다.
- tracing.start()와 testOptions.trace의 snapshots에서 dom, aria, screen 캡처 항목을 선택할 수 있습니다.
- trace viewer에 Display Aria mode가 추가되어 화면 스크린샷과 aria snapshot을 나란히 보여주고, aria 노드에 호버하면 화면에서 해당 위치를 강조합니다.
- httpCredentials가 배열을 받을 수 있게 되어 요청 origin에 맞는 자격 증명을 선택적으로 사용할 수 있습니다.
- storage state에 origin private file system을 포함하는 opfs 옵션이 추가됐습니다.
- page.on('dialogclosed')와 browserContext.on('dialogclosed') 이벤트가 추가돼 JavaScript dialog가 닫힐 때 알 수 있습니다.
- locator.ariaSnapshotJSON()와 page.ariaSnapshotJSON()가 추가되어 aria snapshot을 YAML이 아닌 JSON 값으로 받을 수 있습니다.
- apiRequestContext.get() 등 request 메서드가 응답 json()의 타입을 지정하는 제네릭 인자를 지원합니다.
- testOptions.reducedMotion, testOptions.forcedColors, testOptions.contrast 옵션이 새로 추가됐습니다.
- --add-reporter 옵션이 추가되어 playwright.config의 reporter에 새 reporter를 덧붙일 수 있습니다.
- list, line, dot, github, junit reporter에 omitTags 옵션이 추가되어 test title에 자동으로 붙는 tags를 숨길 수 있습니다.
- npx playwright codegen --http-credentials가 HTTP authentication 뒤의 페이지를 기록할 수 있게 됐습니다.
- 내장 perfetto reporter가 추가되어 Trace Event Format 파일을 만들어 Perfetto UI나 chrome://tracing에서 볼 수 있습니다.
개선
- page.frameLocator()와 frame.frameLocator()가 선택자 없이도 하위 트리의 모든 frame을 검색해 대상 요소를 찾습니다.
- test.step()이 subtitle과 params 옵션을 지원하고, reporter가 testStep.subtitle과 testStep.params를 받을 수 있습니다.
- Playwright API step이 locator나 navigation URL을 subtitle로 함께 표시하며, trace viewer와 HTML report에 반영됩니다.
- npx playwright install --no-remove가 다른 Playwright 설치본의 browser를 지우지 않도록 바뀌었습니다.
- HTML report가 test step 옆에 duration waterfall를 렌더링합니다.
기타
- Linux arm64에서는 Chromium을 Chrome for Testing 빌드로 내려받도록 바뀌었습니다.
- Browser Versions가 Chromium 153.0.8010.12, Mozilla Firefox 155.0, WebKit 26.6으로 갱신됐고, stable 채널의 Google Chrome 153과 Microsoft Edge 153에서도 테스트됐습니다.
지원 종료
- @playwright/experimental-ct-react, @playwright/experimental-ct-react17, @playwright/experimental-ct-vue 패키지는 더 이상 업데이트되지 않습니다.
- Ubuntu 20.04 지원이 종료됐습니다.