iOS 자동 테스트를 수행하기 위해 알아야 할 몇 가지 지식
2015년 Facebook은 iOS 모바일 테스트 프레임워크인 WebDriverAgent를 오픈소스로 공개했습니다. WebDriverAgent는 iOS 측에 WebDriver 서버를 구현하여 iOS 기기를 원격으로 제어할 수 있습니다. 앱을 실행하고 종료하거나, 보기를 클릭하고 스크롤하거나, 페이지가 올바르게 표시되는지 확인할 수 있습니다. XCTest.framework에 연결하고 Apple의 API를 호출하여 장치에서 직접 명령을 실행합니다. 이는 애플리케이션의 엔드투엔드 테스트 또는 일반 장치 자동화를 위한 완벽한 도구입니다.
wda는 UITest와 함께 번들로 시작되고 WebDriverAgentRunner는 iOS 휴대폰에서 백그라운드 앱으로 실행됩니다.
ServerURLHere->http://[SOME_IP]:8100<-ServerURLHere는 휴대폰의 포트 8100에서 HTTP 서버를 시작한다는 의미입니다. 내부에는 네트워크에서 전송되는 웹드라이버 프로토콜 데이터를 모니터링하고 구문 분석하고 처리하는 무한 루프가 있습니다. 클릭 이벤트 p>
그러나 프로젝트는 보관되어 더 이상 유지되지 않습니다. 2019년 5월, Facebook은 iOS 시뮬레이터 및 장치 자동화를 위한 명령줄 인터페이스인 "iOS Development Bridge"인 IDB를 오픈 소스로 공개했습니다. 내부 프로젝트를 WDA에서 IDB로 마이그레이션하고 있으며 대안으로 확인해 볼 것을 권장합니다.
facebook wda가 유지 관리를 중단했기 때문에 이제 일반적으로 facebook wda에서 포크된 appuim wda를 사용하는 것이 좋습니다
iOS-Tagent 역시 Airtest 프로젝트에 iOS 플랫폼에 대한 테스트 지원을 제공할 목적으로 Facebook의 WebDriverAgent 프로젝트를 기반으로 개발되었으며, 프로젝트는 원래 프로젝트를 기반으로 맞춤형 최적화 및 기능 조정을 수행했습니다.
WebDriver 서버는 iOS 측에 구현되어 네트워크를 통해 전송되는 웹드라이버 프로토콜의 데이터를 모니터링합니다. 컴퓨터와 휴대폰 포트의 매핑을 통해 휴대폰의 서버에 네트워크 요청을 보낼 수 있습니다. 이벤트가 발생하면 서버가 클릭을 구문 분석하고 처리할 수 있습니다.
따라서 우리가 해야 할 일은 WDA를 설치 및 시작하고 포트 전달을 설정하는 것입니다. tidevice가 등장하기 전에는 WDA는 xcodebuild를 통해서만 시작할 수 있었고 xcodebuild를 실행하려면 Mac이 필요했습니다. Tidevice는 xcodebuild를 거치지 않고 usbmuxd를 통해 휴대폰의 서비스와 직접 통신하여 휴대폰에서 WDA 시작을 완료합니다. usbmux는 다양한 플랫폼에서 오픈 소스 구현을 제공하므로 tidevice는 Mac뿐만 아니라 Linux 및 Windows에서도 실행할 수 있습니다.
tidevice에 대한 자세한 내용은 tidevice를 참조하세요.