본문으로 건너뛰기

6.1 UI Mode, Inspector, Codegen

UI Mode는 test 목록, step, DOM snapshot, network와 watch 실행을 한 화면에서 탐색합니다.

npx playwright test --ui

Inspector는 headed browser와 함께 test를 한 단계씩 실행하고 locator를 탐색합니다.

npx playwright test --debug
npx playwright test tests/todo.spec.ts:10 --debug

--debug는 timeout과 worker 설정도 debugging에 맞게 바꿉니다. CI 재현과 동일한 조건이 필요하면 trace를 먼저 봅니다.

Codegen은 사용자 동작을 기록해 test와 locator 초안을 만듭니다.

npx playwright codegen http://127.0.0.1:4173

생성된 코드를 그대로 대규모 suite에 넣지 않습니다. Locator를 사용자 계약에 맞게 정리하고, 반복 navigation을 fixture로 옮기고, 의미 있는 assertion을 추가합니다.

Local debugging 순서

  1. 실패 test 하나와 project를 좁힙니다.
  2. UI Mode 또는 --debug로 step을 확인합니다.
  3. Locator strictness와 actionability log를 봅니다.
  4. Network, console, application log를 대조합니다.
  5. Test 수정 전 제품 bug인지 판단합니다.

UI Mode의 test list, timeline, DOM snapshot 재현 캡처

도구별 용도

도구가장 좋은 질문
UI Mode여러 test를 골라 실행하고 step, timeline을 반복 탐색
Inspector한 test를 pause하며 locator와 actionability 확인
Codegen초기 locator와 interaction 초안 생성
VS Code extensionEditor에서 run/debug와 locator picking
DevTools제품 JavaScript, network, rendering 자체 분석

Codegen 결과 리뷰

  • Accessible locator가 선택됐는가?
  • .first()나 brittle text가 들어갔는가?
  • Recorded action만 있고 expected result가 빠졌는가?
  • Login credential이 code에 남았는가?
  • Business step으로 묶어야 하는가?

Pause 활용

await page.goto('/');
await page.pause();

page.pause()를 commit하지 않도록 lint와 code review 규칙을 둡니다. forbidOnly는 CI에서 test.only()를 막는 별도 안전장치이며 page.pause()까지 검출하지는 않습니다.

Project dependency를 쓰는 suite는 UI Mode에서 setup test가 자동 실행되지 않을 수 있습니다. 의존 test를 보기 전에 setup project를 먼저 실행하거나, 학습 Lab처럼 재사용 가능한 auth state를 준비합니다.

실습

  1. UI Mode에서 Todo test의 각 DOM snapshot을 비교합니다.
  2. Pick Locator로 role locator를 생성하고 accessible name을 확인합니다.
  3. Codegen 결과에 assertion과 business title을 직접 추가합니다.
  4. Inspector call log에서 overlay가 click을 막는 이유를 찾습니다.

참고: UI Mode, Debugging tests, Test generator