Appium은 모바일 애플리케이션의 테스트 자동화를 가능하게 해주는 오픈소스 라이브러리이다. native, hybrid, mobile web 등 모든 타입의 모바일 애플리케이션의 테스트 자동화를 가능하게 해준다.
Appium을 통해 구성된 자동화 테스트는 실물 디바이스나 에뮬레이터 또는 시뮬레이터에서 실행이 가능하다.
대부분의 모바일 앱은 iOS, Android 두 가지 플랫폼에서 서비스되고 있다. 같은 앱일지라도 서로 다른 플랫폼을 기반으로 실행되기 때문에 항상 유지보수 리소스가 두 배로 투입된다.
이러한 환경에서 Appium은 하나의 테스트 코드로 서로 다른 두 가지 플랫폼(iOS, Andorid)을 테스트 할 수 있도록 도와준다.
이것이 가능한 이유는 Appium이 서로 다른 플랫폼 벤더가 제공하는 테스트 프레임워크를 공통의 WebDriverAPI로 랩핑하고 있기 때문이다.
스크립트의 API들은 WebDriver JSON Wire Protocol을 사용하여 Appium서버와 통신한다.
Appium 서버는 Android SDK 버전에 맞는 테스트 프레임워크(UIAutomator 혹은 Selendroid)를 처리할 수 있는 모듈과 TCP 서버를 가지는 bootstrap.jar를 디바이스/에뮬레이터에 설치한다.
Appium 서버는 스크립트상에 command를 디바이스의 TCP 서버로 전달한다.
디바이스 상의 UIAutomator 서버는 전달받은 명령어를 Android 버전에 맞는 UIAutomator 혹은 Selendroid 명령어로 바꿔 실행하고 실행 결과를 Appium 서버로 보낸다.
Appium 서버는 콘솔에 처리 결과를 표시한다.
안드로이드와 큰 차이는 없다.