Technical overview
Selenium / Webdriver는 웹 브라우저에를 위한 아주 좋은 자동화 툴이다. 여기엔 사용자가 브라우저와 상호작용할 수 있도록 해주는 아주 깔끔한 API 가 있다. 이 API를 ios automation 에서도 사용할 수 있다. 여러분이 어떤 테스트를 하든지 GUI 와 상호작용하는 기능을 테스트 하려면 기본적으로 아래와 같은 일을 해야 한다.
- element 찾기
- 그 element 와 상호 작용하기
Using that API for ios automation has two main advantages:
ios automation을 위해 이 API를 사용하면 이런 장점들이 있다.
- 이미 증명된 안정적인 API 이고 앞으로 W3C 표준으로 될 것이다.
- local client 로부터 분리해서 원격으로 적용할 수 있다.
셀레니엄은 이미 Java, C#, Python, Ruby client 를 사용하고 있다. 여러분이 편한 언어를 사용하면 된다. 이 API를 배우기 위해 시간을 보내는 대신 business logic 에 더 신경을 쓸 수 있다.
System requirements for OSX
ios-driver 는 Apple 의 두가지 다른 framework에 설치 될 수 있다.
Native 앱에 대해서는 애플의 UIAutomation 프레임워크를 사용한다. (more here). iOS SDK 5.0 이상과 xcode가 필요하다.
이것을 확인하려면 아래와 같이 하면 된다.
$ xcodebuild -showsdks
이 명령어를 실행하면 아래와 같은 내용을 볼 수 있을 것이다.
서버는 자바로 돼 있다. 그래서 Java 7 이 필요하다.
설치된 자바 버전을 확인하려면 아래와 같이 한다.
$ java -version
이렇게 하면 현재 설치돼 있는 자바 버전이 나올 것이다.
Getting a test application
테스트를 위해 애플에서 제공하는 샘플 앱을 사용할 것이다. : InternationalMountains.
다른 앱이 있으면 그것을 사용해도 된다.
InternationalMountains 을 사용하려면 여기서 다운 받고 압축을 풀으면 된다.
UICatalog를 사용해도 된다. iOS에서 UI element 가 가능한 샘플 앱니다.
Launching ios-driver
ios-server-0.6.6-SNAPSHOT.jar 를 다운 받는다.
ios-server 최신 버전을 다운 받는다.
다운 받은 폴더로 가서 아래 명령어를 실행한다.
$ java -jar ios-server-0.6.6-SNAPSHOT-standalone.jar -aut
path/to/aut.app -port 4444
그러면 터미널에 아래와 같은 내용의 로그 기록을 볼 것이다.
이 앱이 제대로 인식 되었는지 보려면 브라우저로 가서 아래 URL로 이동해 본다.
http://localhost:4444/wd/hub/status
그러면 이 앱에 대한 정보를 json 객체 형태로 볼 수 있을 것이다.