6.2 Trace, Screenshot, Video
Trace는 test action, DOM snapshot, network, console, source와 attachment를 시간순으로 보존합니다. CI에서만 발생하는 실패를 분석하는 기본 artifact입니다.
use: {
trace: 'on-first-retry',
screenshot: 'only-on-failure',
video: 'retain-on-failure',
}
npx playwright show-trace test-results/.../trace.zip
첫 retry trace는 최초 실패 자체가 아니라 retry 실행을 기록합니다. 항상 최초 시도 trace가 필요하면 retain-on-failure 등 정책을 검토하되 artifact size가 증가하므로 volume을 측정합니다.
Artifact 선택
- Trace: step과 DOM, network 상관관계
- Screenshot: 한 시점의 visual state
- Video: animation, timing 흐름
- HTML report: suite 전체 결과와 attachment
- Console, server log: browser 바깥 원인
Trace와 video에는 사용자 data, token, 입력값이 포함될 수 있습니다. CI artifact 접근 권한과 retention을 제한합니다. 공식 문서 기준으로 trace.playwright.dev는 trace를 browser 안에서만 열고 외부로 전송하지 않습니다. 사내 정책상 외부 도메인 사용이 제한되면 npx playwright show-trace로 local에서 엽니다.
참고: Trace Viewer
Trace 읽는 순서
- 실패 assertion과 error message를 확인합니다.
- 직전 action의 before/after DOM snapshot을 비교합니다.
- Locator call log와 actionability를 확인합니다.
- 같은 시간대 request/response를 봅니다.
- Console, page error를 연결합니다.
- Source와 attachment에서 business ID를 찾습니다.
Attachment redaction
Network body를 attach할 때 allowlist field만 남깁니다. Trace 자체에 form input과 DOM text가 들어갈 수 있으므로 민감 화면 test는 별도 project와 retention을 둘 수 있습니다.
실습
- Locator failure, 500 response, console error를 각각 만들고 trace에서 찾습니다.
- Screenshot만으로 원인을 잘못 판단할 수 있는 사례를 기록합니다.
- Artifact size와 retention 기간을 계산합니다.
- trace.playwright.dev 같은 외부 도메인 사용이 사내 정책상 허용되는지 확인합니다.