Slide 1

Slide 1 text

Appium at Scale I believe developers should get immediate feedback whenever they run their test suites Sebastian Tiedtke @sourishkrout

Slide 2

Slide 2 text

Why is this so hard? ! ! ! ! ! ! ! ! !

Slide 3

Slide 3 text

Lots of platforms and devices… ! ! ! ! ! ! ! ! !

Slide 4

Slide 4 text

One test case at a time… ! ! ! ! ! ! ! ! !

Slide 5

Slide 5 text

Solution? 


Slide 6

Slide 6 text

Automation with Appium ! Appium is an open source test automation framework for use with native and hybrid mobile apps. It drives iOS and Android apps using the WebDriver JSON wire protocol. 


Slide 7

Slide 7 text

Demo App ! Courtesy of Christophe Coenraets from Adobe ! https://github.com/ccoenraets/directory-backbone-topcoat

Slide 8

Slide 8 text

Apache Cordova / PhoneGap ! Apache Cordova is a platform for building native mobile applications using HTML, CSS and JavaScript.

Slide 9

Slide 9 text

What’s a Hybrid App? ! Apache Cordova runs a web app hosted within a native app (iOS, Android, etc) and make its UI accessible through a “fullscreen” WebView ! Cordova exposes native platform APIs to the web app using a unified Javascript API 
 +

Slide 10

Slide 10 text

Native vs Webview Context ! Same protocol to talk to native as well as webview parts of mobile apps ! API calls available to switch contexts ! ! ! +

Slide 11

Slide 11 text

Native vs Webview Context ! it('should confirm table cell element is visible', function(done) {! h.driver.elementsByTagName('tableCell', function(err, els) {! // do something with native table cell (iOS) elements! });! });! ! it('should confirm spans are visible', function(done) {! h.driver.elementsByTagName('span', function(err, els) {! // do something with span elements (DOM)! });! });! 
 +

Slide 12

Slide 12 text

Test All The Things! ! Local test execution

Slide 13

Slide 13 text

Leverage cloud execution… +

Slide 14

Slide 14 text

[LIVE DEMO] ! 1. Execute 6 iOS tests locally (exec time 2min) 2. Execute 6 iOS + 6 Android tests in Sauce Cloud (exec time ~45 sec) 3. Double tests to 24 (exec time ~50 sec) 4. Double tests to 48 (exec time ~75 sec) 5. … ! Show case execution time will remain flat while number of tests increase exponentially.

Slide 15

Slide 15 text

Sauce Labs Features ! ! ! ! ! ! ! Rich Test Dashboard + REST API access Fast Diagnosis Screenshots & Screencasts Various Logs to Aid Debugging Pristine VMs (Security) Secure Temporary Storage for Apps

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

Summary ! ! http://saucelabs.com/ ! Appium: http://appium.io/ ! Gappium: https://github.com/appium/ io.appium.gappium.sampleapp ! Apache Cordova: http://cordova.apache.org/ ! Topcoat: http://topcoat.io/ ! @sourishkrout