65
mobile automation made awesome Jonathan Lipps Sr Developer Sauce Labs @AppiumDevs @jlipps @saucelabs App Developers Conference Los Angeles, CA Nov 6 2013

Jonathan Lipps Appium Mobile Automation Made Awesome

Embed Size (px)

DESCRIPTION

Appium Mobile Automation Made Awesome

Citation preview

Page 1: Jonathan Lipps Appium Mobile Automation Made Awesome

mobile automation made awesome

Jonathan Lipps • Sr Developer • Sauce Labs

@AppiumDevs • @jlipps • @saucelabs

App Developers Conference • Los Angeles, CANov 6 2013

Page 2: Jonathan Lipps Appium Mobile Automation Made Awesome

Jonathan Lipps • Sr Developer • Sauce Labs

@AppiumDevs • @jlipps • @saucelabs

http://mobro.co/jlipps

Ecosystem &Integrations

Project Lead &Architect

Page 3: Jonathan Lipps Appium Mobile Automation Made Awesome

appium introduction

Page 4: Jonathan Lipps Appium Mobile Automation Made Awesome

“Mobile is taking over the world.” So how do we scale mobile quality?

Page 5: Jonathan Lipps Appium Mobile Automation Made Awesome

Testing and QA are important but painful. We want more code, less tap!

Page 6: Jonathan Lipps Appium Mobile Automation Made Awesome

Risk grows with complexity. Small changes can have huge unintended consequences

Page 7: Jonathan Lipps Appium Mobile Automation Made Awesome

Automated testing is the solution for a fast dev cycle that maintains high quality

Page 8: Jonathan Lipps Appium Mobile Automation Made Awesome

Continuous Integration is awesome: automated testing + automated deployment

Page 9: Jonathan Lipps Appium Mobile Automation Made Awesome

The Dev Cycle ofOptimal Happiness[ ]

Page 10: Jonathan Lipps Appium Mobile Automation Made Awesome

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

Page 11: Jonathan Lipps Appium Mobile Automation Made Awesome

appium makes automated testing possible for mobile, setting the stage for real CI

Page 12: Jonathan Lipps Appium Mobile Automation Made Awesome

appium raison d’être

Page 13: Jonathan Lipps Appium Mobile Automation Made Awesome

iOS Android

calabash-iosFrankUIAutomationios-driverKeepItFunctional

calabash-androidMonkeyTalkRobotiumUiAutomatorselendroid

Page 14: Jonathan Lipps Appium Mobile Automation Made Awesome

Rule 1Test the same app you submit to the marketplace

Page 15: Jonathan Lipps Appium Mobile Automation Made Awesome

Rule 2Write your tests in any language and any framework

Page 16: Jonathan Lipps Appium Mobile Automation Made Awesome

Rule 3Use a standard automation specification and API

Page 17: Jonathan Lipps Appium Mobile Automation Made Awesome

Rule 4Build a large and thriving open-source community

Page 18: Jonathan Lipps Appium Mobile Automation Made Awesome

Platform SupportReal devicesSimulatorsHybrid appsMobile webRobots?!

Page 19: Jonathan Lipps Appium Mobile Automation Made Awesome

Demo

Page 20: Jonathan Lipps Appium Mobile Automation Made Awesome
Page 21: Jonathan Lipps Appium Mobile Automation Made Awesome

appium architecture

Page 22: Jonathan Lipps Appium Mobile Automation Made Awesome

appium is an HTTP server that creates and handles WebDriver sessions

Page 23: Jonathan Lipps Appium Mobile Automation Made Awesome

Selenium WebDriverhas been the standard for browser automation

Page 24: Jonathan Lipps Appium Mobile Automation Made Awesome

Selenium WebDriveris a HTTP APIPOST /sessionPOST /session/elementGET /session/element/:id/:attr

Page 25: Jonathan Lipps Appium Mobile Automation Made Awesome

Selenium WebDriverhas clients in every* language

Page 26: Jonathan Lipps Appium Mobile Automation Made Awesome

Selenium WebDriver is a W3C working draft*

Page 27: Jonathan Lipps Appium Mobile Automation Made Awesome

appium extends the WebDriver protocol with mobile-specific behaviors

Page 28: Jonathan Lipps Appium Mobile Automation Made Awesome

appium is working with the Selenium project so we can standardize these extensions

Page 29: Jonathan Lipps Appium Mobile Automation Made Awesome

Automation VoodooApple Instruments & UIAutomation for iOSGoogle UiAutomator for Android (4.2.1 up)Selendroid for older Android & hybridMarionette for FirefoxOS

Page 30: Jonathan Lipps Appium Mobile Automation Made Awesome
Page 31: Jonathan Lipps Appium Mobile Automation Made Awesome
Page 32: Jonathan Lipps Appium Mobile Automation Made Awesome

appium setup

Page 33: Jonathan Lipps Appium Mobile Automation Made Awesome

RequirementsBasically the same as dev toolkits for iOS, AndroidXcode + iOS SDKAndroid SDK + Java

Page 34: Jonathan Lipps Appium Mobile Automation Made Awesome

Install: Option OneClone from GitHubREPO=”appium/appium.git”git clone https://github.com/$REPOcd appium && ./reset.shnode .

Page 35: Jonathan Lipps Appium Mobile Automation Made Awesome

Install: Option TwoInstall from NPMnpm install -g appiumappium

Page 36: Jonathan Lipps Appium Mobile Automation Made Awesome

Install: Option ThreeDownload the GUI app# github.com/appium/appium/releasesopen /Applications/Appium.app

Page 37: Jonathan Lipps Appium Mobile Automation Made Awesome
Page 38: Jonathan Lipps Appium Mobile Automation Made Awesome
Page 39: Jonathan Lipps Appium Mobile Automation Made Awesome
Page 40: Jonathan Lipps Appium Mobile Automation Made Awesome
Page 41: Jonathan Lipps Appium Mobile Automation Made Awesome

appium test model

Page 42: Jonathan Lipps Appium Mobile Automation Made Awesome

Start/stop a session

Page 43: Jonathan Lipps Appium Mobile Automation Made Awesome

Find elements

Page 44: Jonathan Lipps Appium Mobile Automation Made Awesome

Interact with elements

Page 45: Jonathan Lipps Appium Mobile Automation Made Awesome
Page 46: Jonathan Lipps Appium Mobile Automation Made Awesome
Page 47: Jonathan Lipps Appium Mobile Automation Made Awesome
Page 48: Jonathan Lipps Appium Mobile Automation Made Awesome

appium scale

Page 49: Jonathan Lipps Appium Mobile Automation Made Awesome

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

Page 50: Jonathan Lipps Appium Mobile Automation Made Awesome

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

Page 51: Jonathan Lipps Appium Mobile Automation Made Awesome

Run tests on Sauce

Page 52: Jonathan Lipps Appium Mobile Automation Made Awesome

saucelabs.com/mobileFREE FOR OPEN SOURCE

Page 53: Jonathan Lipps Appium Mobile Automation Made Awesome

appium is also compatible with Selenium Grid which helps with your own closet cloud

Page 54: Jonathan Lipps Appium Mobile Automation Made Awesome

appium real devices

Page 55: Jonathan Lipps Appium Mobile Automation Made Awesome
Page 56: Jonathan Lipps Appium Mobile Automation Made Awesome
Page 57: Jonathan Lipps Appium Mobile Automation Made Awesome
Page 58: Jonathan Lipps Appium Mobile Automation Made Awesome

appium mobile web

Page 59: Jonathan Lipps Appium Mobile Automation Made Awesome
Page 60: Jonathan Lipps Appium Mobile Automation Made Awesome

appium robots

Page 61: Jonathan Lipps Appium Mobile Automation Made Awesome
Page 62: Jonathan Lipps Appium Mobile Automation Made Awesome

appium hackers

Page 63: Jonathan Lipps Appium Mobile Automation Made Awesome

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)

Page 64: Jonathan Lipps Appium Mobile Automation Made Awesome

Questions?

http://appium.iohttps://github.com/appium/appium

@AppiumDevs • @jlipps • @saucelabs

Page 65: Jonathan Lipps Appium Mobile Automation Made Awesome

Thanks!

http://appium.iohttps://github.com/appium/appium

@AppiumDevs • @jlipps • @saucelabs