UI 자동화 (웹·모바일)
Playwright 중심의 웹 자동화와 Appium 계열 모바일 자동화. POM, 깨지지 않는 로케이터 설계, 대기 전략, 불안정한 테스트 대처법, Cypress와의 도구 비교, 그리고 test.extend 기반 API Fixture로 테스트 데이터를 만들고 실패 단계별로 자동 트리아지하는 설계까지.
학습 목표
이 모듈 한 줄 요약 — "사람이 하던 클릭을 코드가 하게 만든다 — 그리고 안 깨지게". 화면 자동화는 만들기는 쉽고 유지하기가 어렵다. 디자인이 조금 바뀌면 무더기로 깨진다. 그래서 이 모듈의 핵심은 "어떻게 만드나" 가 아니라 "어떻게 안 깨지게 만드나" 다.
이 모듈을 마치면 UI 자동화가 언제, 왜 필요한지 판단하고 Playwright로
실제 웹 자동화 테스트를 작성할 수 있다. 디자인이 바뀌어도 잘 안 깨지는
로케이터를 설계하고, Page Object Model로 유지보수 가능한 테스트
구조를 만들 수 있다. sleep() 대신 올바른 대기 전략을 쓰는 법과
UI 자동화에서 불안정한 테스트를 다루는 법을 익히고, Appium을 통해
모바일 자동화의 기초와 웹과의 차이를 이해한다.
완료 후 할 수 있는 것
- UI 자동화가 필요한 상황과 그렇지 않은 상황을 판단할 수 있다
- Playwright로 요소를 찾고, 조작하고, 결과를 검증하는 테스트를 작성할 수 있다
- 디자인 변경에 강한, 사용자 관점의 로케이터를 설계할 수 있다
- Page Object Model로 테스트 코드의 유지보수성을 높일 수 있다
sleep()이 아닌 명시적·암묵적 대기 전략을 올바르게 쓸 수 있다- UI 자동화 특유의 플래키 원인을 진단하고 대응할 수 있다
- Appium 기반 모바일 자동화의 기본 개념과 웹 자동화와의 차이를 설명할 수 있다
- 크로스 브라우저·디바이스 자동화 전략을 설명할 수 있다
- Cypress와 Playwright의 구조적 차이를 이해하고 상황에 맞는 도구를 선택할 수 있다
- test.extend 기반 API Fixture로 사전 데이터를 만들고 정리하며, 실패 단계로 환경 문제·셀렉터 오류·실제 버그를 자동 분류할 수 있다
채용시장에서의 위치
"Playwright/Selenium/Appium 경험"은 자동화 QA·SDET 채용에서 가장 빈번하게 등장하는 요구사항이다. 하지만 도구 사용법보다 채용 담당자가 더 눈여겨보는 건, "이 사람이 짠 자동화 테스트가 6개월 뒤에도 잘 돌아가는가" 다 — 깨지기 쉬운 로케이터, 부실한 대기 전략, 관리 안 되는 구조로 짜인 자동화는 금방 애물단지가 된다. 이 모듈은 단순히 도구를 다루는 법이 아니라, 모듈 11에서 배운 자동화 부채를 만들지 않는 오래가는 UI 자동화를 짜는 법에 초점을 맞춘다.
레슨 (10개)
- 중급약 20분
UI 자동화란 무엇인가: 언제, 왜 필요한가
피라미드 꼭대기에 있는 UI 자동화는 가장 비싸고 불안정하다. 그래서 무엇을 UI 자동화로 남겨야 하는지 신중하게 판단해야 한다.
- 중급약 25분
Playwright로 첫 자동화 테스트 작성하기
브라우저를 자동으로 조작하는 Playwright의 기본 구조를 익힌다. 요소를 찾고, 행동을 흉내 내고, 결과를 검증하는 흐름은 모듈 10에서 배운 AAA 패턴 그대로다.
- 중급약 25분
깨지지 않는 로케이터 설계하기: 사용자 관점으로 요소 찾기
디자인이 바뀔 때마다 테스트가 깨진다면 로케이터 설계가 잘못된 것이다. CSS 클래스가 아니라 사용자가 인식하는 방식으로 요소를 찾는 원칙을 익힌다.
- 중급약 20분
Page Object Model: 유지보수 가능한 테스트 구조 만들기
로케이터가 테스트 코드 곳곳에 흩어져 있으면 화면 하나가 바뀔 때마다 수십 곳을 고쳐야 한다. 화면을 하나의 객체로 감싸는 POM 패턴으로 이 문제를 해결한다.
- 중급약 20분
대기 전략: sleep() 대신 무엇을 써야 하는가
"3초만 기다려라"는 식의 고정 대기는 UI 자동화에서 가장 흔한 실수다. 조건이 충족될 때까지 기다리는 올바른 대기 전략을 익힌다.
- 고급약 25분
UI 자동화에서 불안정한 테스트 다루기
UI 자동화는 태생적으로 플래키해지기 쉽다. 로케이터·대기·환경·테스트 데이터, 네 가지 관점에서 원인을 진단하고 대응하는 체계적인 접근을 익힌다.
- 중급약 20분
모바일 자동화 기초: Appium과 웹 자동화의 차이
앱은 브라우저가 아니다. 네이티브 앱, 하이브리드 앱의 차이를 이해하고, Appium이 웹 자동화와 어떤 개념을 공유하고 어떤 점이 다른지 익힌다.
- 중급약 20분
크로스 브라우저·디바이스 자동화 전략
모든 브라우저와 모든 기기에서 전체 테스트를 다 돌리는 건 비현실적이다. 무엇을 어디까지 커버할지 우선순위를 정하는 전략으로 이 모듈을 마무리한다.
- 중급약 20분
Cypress — Playwright·Selenium과 무엇이, 왜 다른가
웹 UI 자동화 3대 도구 중 하나인 Cypress를 Playwright와 비교한다. 같은 목표(브라우저를 코드로 조작)를 다른 구조로 풀어낸 선택이 실무에 어떤 차이를 만드는지 이해한다.
- 중급약 35분
테스트 데이터 부재 해결 — API Fixture 자동화 설계와 실패 단계별 자동 트리아지
E2E 테스트가 "시험할 주문이 없어서", "쿠폰이 이미 쓰여서" 실패한다면 그것은 테스트 데이터 부재 문제다. 사전 조건을 추출해 API로 상태를 만들고 테스트에 주입한 뒤 실행하고 정리하는 다섯 단계 파이프라인, Playwright test.extend 기반 Custom Fixture 구현, UI로 데이터를 만들지 않는 원칙과 fixture_payload 메타데이터·멱등성 접두사·API 토큰 사전 주입, 그리고 Fixture 단계 실패는 환경 문제로, UI 단계 실패는 셀렉터 오류나 실제 버그로 자동 분류하는 트리아지 로직을 다룬다.
이 모듈의 실습
실습은 별도 저장소에서 진행합니다. 새 탭으로 열립니다.
- QA 숍 화면을 Playwright 로 안정적으로 자동화하기입문 · 약 180분 · 바로 실습
도구: playwright