29
in project Nemo at Swiss Post Matthias Junker

Appium: Mobile Automation Made Awesome

Embed Size (px)

DESCRIPTION

The tools and practices refined over the last decade by web developers have not crossed over easily into the mobile community. Mobile devs have been without tools like continuous integration and automated testing, which enable delivery of high-quality apps more rapidly. A key piece of the solution for mobile is Appium, an open-source, cross-platform, language-agnostic mobile automation framework you can use to write automated UI tests for Android and iOS apps (native, hybrid, web), to be run on emulators or devices. In this talk we will explore the philosophy that underlies the work behind Appium, including the open-source nature of Appium’s diverse, active and friendly community. Then, after a brief explanation of the technology that powers Appium, we’ll move into the technical portion of the talk, where attendees will see easy it is to write Appium scripts using the WebDriver protocol in their favorite language, and integrate Appium tests into a CI system using Selenium Grid or Sauce Labs. Finally, we’ll look at some concrete examples of how Appium has been used in a large project with 20 Android Apps at Swiss Post to dramatically improve mobile QA. Ultimately, the talk provides an argument for moving from manual QA to automated testing, an understanding of the mobile automation landscape, and a solid introduction to Appium, which leading projects and companies around the world have chosen as their mobile automation framework of choice.

Citation preview

Page 1: Appium: Mobile Automation Made Awesome

in project Nemo at Swiss Post

Matthias Junker

Page 2: Appium: Mobile Automation Made Awesome

© Foto Die Schweizerische Post AG

Page 3: Appium: Mobile Automation Made Awesome

• Android

• 7 Scrum Teams

• 18 Apps

• 10 months

Page 4: Appium: Mobile Automation Made Awesome

test device

Page 5: Appium: Mobile Automation Made Awesome

Not all Android devices

are the same…

© Foto by Andrew Magill

https://www.flickr.com/photos/amagill/4223790595

https://creativecommons.org/licenses/by/2.0

Page 6: Appium: Mobile Automation Made Awesome
Page 7: Appium: Mobile Automation Made Awesome

Appium

~

Selenium

Page 8: Appium: Mobile Automation Made Awesome

Test Scripts

Selenium

Chrome

chromedriver

Introducing

Page 9: Appium: Mobile Automation Made Awesome

Test Scripts

Selenium

Chrome

chromedriver

Appium

Selendroid

Intermec CN51

Introducing

Page 10: Appium: Mobile Automation Made Awesome

«Shared» Test Scripts

Selenium

Chrome

chromedriver

Appium

Selendroid

Intermec CN51

Introducing

Page 11: Appium: Mobile Automation Made Awesome

«Shared» Test Scripts

Selenium

Chrome

chromedriver

Appium

Selendroid

Intermec CN51

Introducing

Abstraction Layer

Page 12: Appium: Mobile Automation Made Awesome

Job

App

1

Job

App

2 Je

nk

ins

Ap

piu

m S

erv

er

Page 13: Appium: Mobile Automation Made Awesome

Uninstall all Apps

Jenkins Job Download Apps

Sign and install

Apps

Archive logs and

screenshots

Run Test

Repeat for

every test

Page 14: Appium: Mobile Automation Made Awesome
Page 15: Appium: Mobile Automation Made Awesome
Page 16: Appium: Mobile Automation Made Awesome

Jenkins master

Connect

slave

Page 17: Appium: Mobile Automation Made Awesome

Jenkins master

Connect

slave Run test

Page 18: Appium: Mobile Automation Made Awesome

Jen

kin

s

slave-label

Ap

piu

m S

erv

er

Job

App

1

Job

App

2 …

Page 19: Appium: Mobile Automation Made Awesome

I like my

biscuits flakey,

not my tests.

© Foto by Casey Fleser

https://www.flickr.com/photos/somegeekintn/3796107641

https://creativecommons.org/licenses/by/2.0

Page 20: Appium: Mobile Automation Made Awesome

© Foto by Juan Emilio

https://www.flickr.com/photos/juan_e/8633078314

https://creativecommons.org/licenses/by-sa/2.0/

Tweety

Page 21: Appium: Mobile Automation Made Awesome

service.load()

.done(doneCallback)

.fail(failCallback);

Page 22: Appium: Mobile Automation Made Awesome
Page 23: Appium: Mobile Automation Made Awesome
Page 24: Appium: Mobile Automation Made Awesome

Tests are now as stable as

Selenium tests

conclusion

Page 25: Appium: Mobile Automation Made Awesome

Flexible CI setup

conclusion

Page 26: Appium: Mobile Automation Made Awesome

Writing tests only

once is great

conclusion

Page 27: Appium: Mobile Automation Made Awesome

conclusion

Page 28: Appium: Mobile Automation Made Awesome

Questions?

@mjunker84

http://www.netcetera.com

Page 29: Appium: Mobile Automation Made Awesome

@mjunker84

http://www.netcetera.com

Thanks!

Join our Appium

workshop today at 14:10!