5. Mobile apps testing
• Appium is cross-platform solution for
native and hybrid mobile automation
6. Appium philosophy
• Test the same app you submit to the
market
• Write test in any language, using any
framework
• Use standard automation specification
and API
7. Support platforms
• Real devices
• Simulators
• Native apps
• Hybrid apps
• Mobile web
• Robots?!
8. Appium in space
iOS
Android
• Calabash-ios
• Calabash-android
• Frank
• MonkeyTalk
• UIAutomation
• Robotium
• ios-driver
• UiAutomator
• KeepItFunctional
• Selendroid
9. Selenium WebDriver
• Is standard for browser automation, with
libraries in every* language
• Is used every single day by thousands of
developers familiar with its model
• Is an HTTP API
• POST /session
• POST /session/element
• GET /session/element/:id/:attr
• Is a W3C working draft
11. Appium architecture
• Appium is an HTTP server that creates
and handles WebDriver sessions
• Appium starts a “test case” on the
device that spawns a server and listens
for proxied commands
12. Appium architecture
• On iOS, appium proxies commands to a
UIAutomation script running in
Istruments
13. Appium architecture
• On Android, appium proxies commands
to a UiAutomator test case running on
device
15. Gestures
• tap (on screen or on element)
• flick (on screen or on element)
• swipe/drag (on screen or on element)
• scroll to (element)
• slider
• shake
• longTap (element)
16. Appium opens door to cross-platform
mobile testing: one test, two mobile
platforms