
QA Wolf에서 Windows 데스크톱 앱 테스트를 사용할 수 있게 됐다. Linux에서 테스트 코드를 실행하고, 매 테스트마다 새 Windows 가상 머신(VM)을 할당해 앱을 구동하는 방식이다.
웹 테스트는 Linux 컨테이너에서 브라우저를 몇 초 안에 실행할 수 있지만, Windows 앱에는 그래픽 데스크톱이 필요해 테스트마다 전체 VM을 써야 한다. 차가운 상태의 Windows VM은 부팅에 2~3분이 걸리고, UI 자동화는 로그인된 데스크톱 세션에서만 작동한다. 테스트 간 파일·레지스트리·사용자 프로필이 남는 문제와 원격 화면을 확인하기 어려운 점도 있다.
QA Wolf는 모바일 테스트 인프라의 기기 할당 방식을 Windows에 적용했다. Kubernetes에서 동작하는 기기 스케줄러가 Google Compute Engine(GCE)의 Windows VM 풀을 관리하고, 테스트가 DeviceClaim으로 VM을 요청하면 연결 정보를 돌려준다. 테스트가 끝나면 VM을 폐기하고 새 VM으로 풀을 보충한다.
테스트 코드는 Linux 러너에서 실행된다. 브라우저에는 CDP(Chrome DevTools Protocol)를 통해 Playwright로 연결하고, 네이티브 앱은 WebdriverIO와 Appium으로 제어한다. Windows VM의 Go 데스크톱 에이전트는 화면을 WebRTC로 전송해 실행 중 실시간으로 보거나 녹화본을 확인할 수 있게 한다.
스케줄러는 WindowsVMTemplate, WindowsVMPool, WindowsVM이라는 Kubernetes 사용자 지정 리소스로 VM 이미지·사양, 풀의 목표 수량, 개별 VM을 관리한다. 조정기는 GCE에서 실제로 실행 중인 VM과 기록을 비교해 부족한 VM을 생성한다. VM 생성과 부팅은 여러 단계로 나눠 처리해 느린 부팅이 스케줄러의 다른 작업을 막지 않게 한다. 테스트가 60초 동안 응답하지 않으면 VM을 회수하며, 한 영역에서 VM을 구할 수 없을 때는 다른 영역에 풀을 만든다.
풀에 미리 부팅하고 로그인한 VM을 준비해 두므로 테스트는 차가운 VM의 2~3분 부팅을 기다리지 않는다. VM은 테스트마다 한 번만 사용해 이전 실행의 파일이나 설정이 다음 테스트에 남지 않는다. 이미지 업데이트도 장기 실행 VM을 직접 업그레이드하는 대신, 오래된 VM을 사용 후 새 이미지의 VM으로 교체하는 방식이다.
자동화 도구가 로그인된 데스크톱 세션에서 실행되도록 Appium, Appium Windows 드라이버, Microsoft WinAppDriver를 기본 이미지에 설치한다. PowerShell 스크립트로 이미지를 만들고 GCE 이미지 패밀리에 게시해 재현성을 확보한다. 기본 이미지에는 Google Chrome과 Adobe Acrobat이 포함되며, Microsoft Word의 첫 실행 대화상자를 미리 처리한 Office 이미지도 제공한다. 라이선스가 필요한 소프트웨어나 고객별 설정이 필요한 경우에는 고객이 제공한 설정 스크립트로 전용 이미지를 만들 수 있다.
테스트는 @qawolf/flows/windows의 launch()와 startApp()을 이용한다. 브라우저와 네이티브 앱을 한 테스트에서 다룰 수 있고, expect는 검증 대상에 따라 Playwright 또는 WebdriverIO 매처를 사용한다. 앱은 매번 새 VM에 전달해야 하므로, startApp()이 발급하는 수명이 짧은 서명 URL을 통해 VM이 저장소에서 직접 내려받는다. 테스트 코드는 권한이 제한된 사용자로 실행되며 URL 서명은 QA Wolf 중앙 API 서비스만 할 수 있다. .exe, .msi, .msix 설치 파일과 MSI 속성을 지원하고, 파일을 VM으로 보내거나 VM에서 가져오는 기능도 제공한다.
화면 에이전트는 FFmpeg로 화면을 캡처하고 WebRTC로 전송한다. Windows의 user32.dll을 호출해 마우스·키보드·클립보드 입력을 처리하며, CGo 없이 Mac이나 Linux에서 Windows용으로 교차 컴파일할 수 있다. 에이전트는 실제 화면 크기를 읽어 전체 데스크톱을 표시하고, 캡처 및 WebRTC 연결 진단 정보와 로그를 제공한다. QA Wolf는 실시간 화면 보기와 실행별 녹화 외에도 네이티브 앱의 UIA 요소 선택, MCP 서버와 공개 API를 통한 스크린샷·동작·요소 검사 기능을 제공한다고 밝혔다.
고객 네트워크 연결은 QA Wolf의 고정 IP 범위에서 나가므로 고객은 해당 범위를 허용 목록에 등록할 수 있다. 전용 풀은 소속 워크스페이스만 할당받을 수 있고, 컨트롤러는 Workload Identity로 Google Cloud에 인증해 장기 자격 증명을 VM에 저장하지 않는다. VM은 테스트가 끝나면 폐기돼 고객 데이터가 기기에 남지 않는다.
QA Wolf는 Windows 데스크톱 테스트가 플랫폼과 MCP를 통해 제공되며, 웹·iOS·Android 테스트와 함께 단일 API로 작성할 수 있다고 설명했다.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요