Appium: Automation for Mobile Apps

39
automation for mobile apps Jonathan Lipps | @jlipps | Sauce Labs

description

Jonathan Lipps' talk for GTAC 2013 on Appium, an open source framework for mobile app testing.

Transcript of Appium: Automation for Mobile Apps

Page 1: Appium: Automation for Mobile Apps

automation for mobile apps

Jonathan Lipps | @jlipps | Sauce Labs

Page 2: Appium: Automation for Mobile Apps

Mobile is taking over the world. Where is our mobile automation? Our mobile CI?

Page 3: Appium: Automation for Mobile Apps

It's a multi-platform age. Mass adoption requires cross-platform apps.

Page 4: Appium: Automation for Mobile Apps

appium is the cross-platform solution for native and hybrid mobile automation

Page 5: Appium: Automation for Mobile Apps

1

appium philosophy

2 3 4

Page 6: Appium: Automation for Mobile Apps

Rule 1 Test the same app you submit to the marketplace

Page 7: Appium: Automation for Mobile Apps

Rule 2 Write your tests in any language, using any framework

Page 8: Appium: Automation for Mobile Apps

Rule 3 Use a standard automation specification and API

Page 9: Appium: Automation for Mobile Apps

Rule 4 Build a large and thriving open- source community effort

Page 10: Appium: Automation for Mobile Apps

appium in space!

2 3 4 1

Page 11: Appium: Automation for Mobile Apps

iOS Android

calabash-ios Frank UIAutomation ios-driver KeepItFunctional

calabash-android MonkeyTalk Robotium UiAutomator selendroid

Page 12: Appium: Automation for Mobile Apps
Page 13: Appium: Automation for Mobile Apps

Selenium WebDriver is the standard for browser automation, with libraries in every* language

Page 14: Appium: Automation for Mobile Apps

Selenium WebDriver is used every single day by thousands of developers familiar with its model

Page 15: Appium: Automation for Mobile Apps

Selenium WebDriver is a W3C working draft

Page 16: Appium: Automation for Mobile Apps

appium architecture

2 3 4 1

Page 17: Appium: Automation for Mobile Apps

appium is an HTTP server that creates and handles WebDriver sessions

Page 18: Appium: Automation for Mobile Apps

appium starts a "test case" on the device that spawns a server and listens for proxied commands

Page 19: Appium: Automation for Mobile Apps

On iOS, appium proxies commands to a UIAutomation script running in Instruments

Page 20: Appium: Automation for Mobile Apps
Page 21: Appium: Automation for Mobile Apps

On Android, appium proxies commands to a UiAutomator test case running on the device

Page 22: Appium: Automation for Mobile Apps
Page 23: Appium: Automation for Mobile Apps

appium in action

2 3 4 1

Page 24: Appium: Automation for Mobile Apps

appium opens the door to cross-platform mobile testing: one test, two mobile platforms

Page 25: Appium: Automation for Mobile Apps

Demo app donated by

Page 26: Appium: Automation for Mobile Apps
Page 27: Appium: Automation for Mobile Apps
Page 28: Appium: Automation for Mobile Apps
Page 29: Appium: Automation for Mobile Apps
Page 30: Appium: Automation for Mobile Apps
Page 31: Appium: Automation for Mobile Apps

Demo

Page 32: Appium: Automation for Mobile Apps
Page 33: Appium: Automation for Mobile Apps
Page 34: Appium: Automation for Mobile Apps
Page 35: Appium: Automation for Mobile Apps

appium is great for local test development, but has limitations when scaling up for use in CI

Page 36: Appium: Automation for Mobile Apps

Sauce Labs is great for scale when you need to run a lot of appium tests in your build

Page 37: Appium: Automation for Mobile Apps

saucelabs.com/appium

Page 38: Appium: Automation for Mobile Apps

Questions?

Page 39: Appium: Automation for Mobile Apps

appium.io github.com/appium/appium  

@AppiumDevs    |    @jlipps    |    @saucelabs  

Thank you