SLIDE 1 mobile automation made awesome
Jonathan Lipps • Sr Developer • Sauce Labs
@AppiumDevs • @jlipps • @saucelabs
App Developers Conference • Los Angeles, CA Nov 6 2013
SLIDE 2 Jonathan Lipps • Sr Developer • Sauce Labs
@AppiumDevs • @jlipps • @saucelabs
http://mobro.co/jlipps
Ecosystem & Integrations Project Lead & Architect
SLIDE 3
appium introduction
SLIDE 4
“Mobile is taking over the world.” So how do we scale mobile quality?
SLIDE 5
Testing and QA are important but painful. We want more code, less tap!
SLIDE 6
Risk grows with complexity. Small changes can have huge unintended consequences
SLIDE 7
Automated testing is the solution for a fast dev cycle that maintains high quality
SLIDE 8
Continuous Integration is awesome: automated testing + automated deployment
SLIDE 9 The Dev Cycle of Optimal Happiness
[ ]
SLIDE 10
appium is the cross-platform solution for native and hybrid mobile automation
SLIDE 11
appium makes automated testing possible for mobile, setting the stage for real CI
SLIDE 12
appium raison d’être
SLIDE 13 iOS Android
calabash-ios Frank UIAutomation ios-driver KeepItFunctional calabash-android MonkeyTalk Robotium UiAutomator selendroid
SLIDE 14
Rule 1 Test the same app you submit to the marketplace
SLIDE 15
Rule 2 Write your tests in any language and any framework
SLIDE 16
Rule 3 Use a standard automation specification and API
SLIDE 17 Rule 4 Build a large and thriving
SLIDE 18 Platform Support
Real devices Simulators Hybrid apps Mobile web Robots?!
SLIDE 19
Demo
SLIDE 20
SLIDE 21
appium architecture
SLIDE 22
appium is an HTTP server that creates and handles WebDriver sessions
SLIDE 23
Selenium WebDriver has been the standard for browser automation
SLIDE 24 Selenium WebDriver is a HTTP API
POST /session POST /session/element GET /session/element/:id/:attr
SLIDE 25
Selenium WebDriver has clients in every* language
SLIDE 26
Selenium WebDriver is a W3C working draft*
SLIDE 27
appium extends the WebDriver protocol with mobile-specific behaviors
SLIDE 28
appium is working with the Selenium project so we can standardize these extensions
SLIDE 29 Automation Voodoo
Apple Instruments & UIAutomation for iOS Google UiAutomator for Android (4.2.1 up) Selendroid for older Android & hybrid Marionette for FirefoxOS
SLIDE 30
SLIDE 31
SLIDE 32
appium setup
SLIDE 33 Requirements Basically the same as dev toolkits for iOS, Android
Xcode + iOS SDK Android SDK + Java
SLIDE 34 Install: Option One Clone from GitHub
REPO=”appium/appium.git” git clone https://github.com/$REPO cd appium && ./reset.sh node .
SLIDE 35 Install: Option Two Install from NPM
npm install -g appium appium
SLIDE 36 Install: Option Three Download the GUI app
# github.com/appium/appium/releases
- pen /Applications/Appium.app
SLIDE 37
SLIDE 38
SLIDE 39
SLIDE 40
SLIDE 41
appium test model
SLIDE 42
Start/stop a session
SLIDE 43
Find elements
SLIDE 44
Interact with elements
SLIDE 45
SLIDE 46
SLIDE 47
SLIDE 48
appium scale
SLIDE 49
appium is great for local test development, but has limitations when scaling up for use in CI
SLIDE 50
Sauce Labs is great for scale when you need to run a lot of appium tests in your build
SLIDE 51
Run tests on Sauce
SLIDE 52 saucelabs.com/mobile
FREE FOR OPEN SOURCE
SLIDE 53
appium is also compatible with Selenium Grid which helps with your own closet cloud
SLIDE 54
appium real devices
SLIDE 55
SLIDE 56
SLIDE 57
SLIDE 58
appium mobile web
SLIDE 59
SLIDE 60
appium robots
SLIDE 61
SLIDE 62
appium hackers
SLIDE 63 We need you...
Node.js devs (for Appium server) Obj-c devs (for Appium.app) C#.Net devs (for Appium.exe) Java devs (for Appium’s Android bootstrap) Windows Phone devs (we need to support it!) Hardware hackers (for robot support)
SLIDE 64 Questions?
http://appium.io https://github.com/appium/appium @AppiumDevs • @jlipps • @saucelabs
SLIDE 65 Thanks!
http://appium.io https://github.com/appium/appium @AppiumDevs • @jlipps • @saucelabs