피드로 돌아가기
Dev.toDevOps
원문 읽기
제한된 예산으로 3개 플랫폼 통합 QA를 구현한 3-Layer Self-Healing 구조
Low-Budget Multi-Device QA: Automating 3 Platforms with Open Source Tools
AI 요약
Context
Android APK(WebView wrapper), WeChat Mini Program, Web Admin으로 구성된 다중 플랫폼 환경의 테스트 자동화 필요성 대두. uiautomator2의 WebView 요소 인식 불가 문제와 기기별 해상도 및 키보드 높이 차이로 인한 좌표 기반 테스트의 한계 발생.
Technical Solution
- uiautomator2, Coordinate Map, OCR+LLM 순의 3-Layer Fallback 전략을 통한 Locator 안정성 확보
- WebView 내부 요소 탐색 불가 문제를 해결하기 위한 OCR 기반 좌표 추출 및 LLM 추론 로직 도입
- 기기별 상이한 해상도 대응을 위한 Device-aware Coordinate Scaling 시스템 설계
- ADB shell input의 문자 유실 방지를 위해 sleep 0.08s 간격의 Command Chaining 기법 적용
- 키보드 오버레이로 인한 클릭 간섭 해결을 위해 KEYCODE_BACK 1회 호출로 키보드 강제 종료 후 좌표 클릭 수행
- Vue3 기반 Admin 패널의 클릭 실패 문제를 해결하기 위한 Playwright page.evaluate() 래핑 적용
실천 포인트
- WebView 기반 앱 설계 시 uiautomator2 외 OCR/좌표 기반 Fallback 전략 수립 여부 확인 - ADB input text 사용 시 문자열 길이에 따른 유실 가능성 검토 및 Command Chaining 적용 - 기기별 IME(키보드) 높이 차이가 UI 상호작용에 미치는 영향 분석 및 강제 종료 로직 구현 - Playwright 사용 시 단순 click() 실패 시 page.evaluate()를 통한 DOM 직접 제어 검토