Slide 1

Slide 1 text

Mobile  Automation  Made       Awesome. Cassian  Lup  •  Senior  UI  Developer  •  3Pillar  Global  •              /  cassi.lup

Slide 2

Slide 2 text

Cassian  Lup  •  Senior  UI  Developer  •  3Pillar  Global  •              /  cassi.lup Why  test?

Slide 3

Slide 3 text

Cassian  Lup  •  Senior  UI  Developer  •  3Pillar  Global  •              /  cassi.lup

Slide 4

Slide 4 text

Cassian  Lup  •  Senior  UI  Developer  •  3Pillar  Global  •              /  cassi.lup The  Beaten  Path

Slide 5

Slide 5 text

Cassian  Lup  •  Senior  UI  Developer  •  3Pillar  Global  •              /  cassi.lup iOS calabash-ios Frank UIAutomation ios-driver KeepItFunctional Android calabash-android MonkeyTalk Robotium UIAutomator selendroid The  Beaten  Path

Slide 6

Slide 6 text

Cassian  Lup  •  Senior  UI  Developer  •  3Pillar  Global  •              /  cassi.lup What  is  Appium?

Slide 7

Slide 7 text

Cassian  Lup  •  Senior  UI  Developer  •  3Pillar  Global  •              /  cassi.lup Tests Apple Instruments JavaScript Google UiAutomator Java What  is  Appium?

Slide 8

Slide 8 text

Cassian  Lup  •  Senior  UI  Developer  •  3Pillar  Global  •              /  cassi.lup Tests Apple Instruments JavaScript Google UiAutomator Java Selenium Tests (Preferred Language) What  is  Appium?

Slide 9

Slide 9 text

Cassian  Lup  •  Senior  UI  Developer  •  3Pillar  Global  •              /  cassi.lup Tests Apple Instruments JavaScript Google UiAutomator Java WD What  is  Appium?

Slide 10

Slide 10 text

Cassian  Lup  •  Senior  UI  Developer  •  3Pillar  Global  •              /  cassi.lup • HTTP server written in node.js • creates and handles multiple WebDriver sessions • for different platforms like iOS and Android What  is  Appium?

Slide 11

Slide 11 text

Cassian  Lup  •  Senior  UI  Developer  •  3Pillar  Global  •              /  cassi.lup What  is  Appium?

Slide 12

Slide 12 text

Cassian  Lup  •  Senior  UI  Developer  •  3Pillar  Global  •              /  cassi.lup Selenium  WebDriver   JSON  Wire  Protocol

Slide 13

Slide 13 text

Cassian  Lup  •  Senior  UI  Developer  •  3Pillar  Global  •              /  cassi.lup Selenium  WebDriver  —  JSON  Wire  Protocol

Slide 14

Slide 14 text

Cassian  Lup  •  Senior  UI  Developer  •  3Pillar  Global  •              /  cassi.lup Selenium  WebDriver  —  JSON  Wire  Protocol Appium Capabilities: • Tap • Fill in forms
 (type text, selects, radios, checkboxes) • Gestures • Multitouch

Slide 15

Slide 15 text

Cassian  Lup  •  Senior  UI  Developer  •  3Pillar  Global  •              /  cassi.lup Selenium  WebDriver  —  JSON  Wire  Protocol POST /session/:sessionId/element/:id/click Click on an element. t POST /session/:sessionId/touch/scroll Scroll on the touch screen using finger based motion events. DELETE /session/:sessionId/cookie/:name Scroll on the touch screen using finger based motion events. GET /session/:sessionId/touch/alert_text Gets the text of the currently displayed JavaScript alert(), t confirm(), or prompt() dialog.

Slide 16

Slide 16 text

Cassian  Lup  •  Senior  UI  Developer  •  3Pillar  Global  •              /  cassi.lup The  Appium  Way

Slide 17

Slide 17 text

Cassian  Lup  •  Senior  UI  Developer  •  3Pillar  Global  •              /  cassi.lup The  Appium  Way 1. Test the same app you submit to the marketplace.

Slide 18

Slide 18 text

Cassian  Lup  •  Senior  UI  Developer  •  3Pillar  Global  •              /  cassi.lup Tests Apple Instruments JavaScript Google UiAutomator Java The  Appium  Way

Slide 19

Slide 19 text

Cassian  Lup  •  Senior  UI  Developer  •  3Pillar  Global  •              /  cassi.lup The  Appium  Way 1. Test the same app you submit to the marketplace. 2. Write your tests in any framework, using any language.
 (Python, Ruby, JS — Node.js, Obj-C, Java)

Slide 20

Slide 20 text

Cassian  Lup  •  Senior  UI  Developer  •  3Pillar  Global  •              /  cassi.lup Tests Apple Instruments JavaScript Google UiAutomator Java Preferred Language The  Appium  Way

Slide 21

Slide 21 text

Cassian  Lup  •  Senior  UI  Developer  •  3Pillar  Global  •              /  cassi.lup The  Appium  Way 1. Test the same app you submit to the marketplace. 2. Write your tests in any framework, using any language.
 (Python, Ruby, JS — Node.js, Obj-C, Java) 3. Use a standard automation specification and API.
 (SE WebDriver)

Slide 22

Slide 22 text

Cassian  Lup  •  Senior  UI  Developer  •  3Pillar  Global  •              /  cassi.lup The  Appium  Way 1. Test the same app you submit to the marketplace. 2. Write your tests in any framework, using any language.
 (Python, Ruby, JS — Node.js, Obj-C, Java) 3. Use a standard automation specification and API.
 (SE WebDriver) 4. Build a large and thriving open-source community effort.

Slide 23

Slide 23 text

Cassian  Lup  •  Senior  UI  Developer  •  3Pillar  Global  •              /  cassi.lup Install  Appium

Slide 24

Slide 24 text

Cassian  Lup  •  Senior  UI  Developer  •  3Pillar  Global  •              /  cassi.lup $ brew install node # get node.js $ npm install -g appium # get appium $ npm install wd # get appium client $ appium & # start appium $ node your-appium-test.js Install  Appium

Slide 25

Slide 25 text

Cassian  Lup  •  Senior  UI  Developer  •  3Pillar  Global  •              /  cassi.lup Writing  Tests

Slide 26

Slide 26 text

Cassian  Lup  •  Senior  UI  Developer  •  3Pillar  Global  •              /  cassi.lup Writing  Tests Jasmine, Mocha, Cucumber

Slide 27

Slide 27 text

Cassian  Lup  •  Senior  UI  Developer  •  3Pillar  Global  •              /  cassi.lup // capabilities for iOS simulator var capabilities = { browserName: "", autoWebview: true, platformName: "iOS", platformVersion: "7.0.3", deviceName: "iPhone 5", app: path.resolve("../platforms/ios/build/emulator/myApp.app") }; Writing  Tests

Slide 28

Slide 28 text

Cassian  Lup  •  Senior  UI  Developer  •  3Pillar  Global  •              /  cassi.lup // capabilities for Android emulator var capabilities = { browserName: "", platformName: "android", deviceName: “My Android Virtual Device", app: path.resolve("../platforms/android/build/myApp.apk") }; Writing  Tests

Slide 29

Slide 29 text

Cassian  Lup  •  Senior  UI  Developer  •  3Pillar  Global  •              /  cassi.lup Writing  Tests Code

Slide 30

Slide 30 text

Cassian  Lup  •  Senior  UI  Developer  •  3Pillar  Global  •              /  cassi.lup Writing  Tests To  Be  Continued…

Slide 31

Slide 31 text

Cassian  Lup  •  Senior  UI  Developer  •  3Pillar  Global  •              /  cassi.lup tapsterbot    (Mobile  device  automation  robot)

Slide 32

Slide 32 text

Cassian  Lup  •  Senior  UI  Developer  •  3Pillar  Global  •              /  cassi.lup Thank  you.