SlideShare a Scribd company logo
F14	
Session	-	Mobile	Testing	
4/28/17	2:00	PM	
	
	
	
	
	
	
The	Present	and	Future	of	Mobile	Test	
Automation	with	Appium	
	
Presented	by:	
	
Jonathan	Lipps	
Sauce	Labs	
	
	
	
Brought	to	you	by:		
		
	
	
	
	
350	Corporate	Way,	Suite	400,	Orange	Park,	FL	32073		
888---268---8770	··	904---278---0524	-	info@techwell.com	-	https://www.techwell.com/
Jonathan	Lipps	
Sauce	Labs	
	
Jonathan	Lipps	has	been	making	things	out	of	code	for	as	long	as	he	can	
remember.	As	the	director	of	open	source	at	Sauce	Labs,	Jonathan	is	leading	the	
charge	to	improve	the	web	and	mobile	testing	ecosystem.	He	is	the	architect	and	
project	lead	for	Appium,	the	open-source,	cross-platform	mobile	automation	
framework	written	in	Node.js.	He	has	worked	as	a	programmer	in	tech	startups	
for	more	than	a	decade.	Jonathan	lives	in	Vancouver,	enjoys	running,	produces	
music,	and	writes	about	the	philosophy	of	technology.
The Present and Future of Mobile Automation
Jonathan Lipps • Director of Open Source • Sauce Labs


@AppiumDevs • @saucelabs • @jlipps
Mobile Dev+Test • San Diego, CA
April 28, 2017
Jonathan Lipps • Director of Open Source • Sauce Labs


@AppiumDevs • @saucelabs • @jlipps
Director of Open Source
Project Lead & Architect
appium is the open-source, cross-
platform solution for native, web, and
hybrid mobile app automation
appium introduction
appium makes continuous integration
possible by providing automation for
mobile apps
appium takes the best mobile
automation technologies and gives them
to you in a WebDriver interface
Why WebDriver?
It’s the globally-recognized W3C standard
for browser automation
WebDriver
is an HTTP API
POST /session
POST /session/element
GET /session/element/:id/:attr
appium works with any language and
any test runner / test framework, even
custom ones

Java : JS : Python : Ruby : PHP : C# :
ObjC : Perl : Swift : Go
appium enables true cross-platform
test-writing. One API for iOS, Android,
Windows, and macOS
appium test model
Server (appium)Client (test script)
Server (appium)Client (test script)
Construct desired capabilities
Server (appium)Client (test script)
Construct desired capabilities
{
"platformName": "iOS",
"platformVersion": "10.2",
"deviceName": "iPhone Simulator",
"app": “/path/to/TestApp7.1.app”,
"noReset": true
}
Server (appium)Client (test script)
Construct desired capabilities
Request a session with capabilities
Server (appium)Client (test script)
Construct desired capabilities
Request a session with capabilities Parse capabilities
Server (appium)Client (test script)
Construct desired capabilities
Request a session with capabilities Parse capabilities
Start session based on caps
Server (appium)Client (test script)
Construct desired capabilities
Request a session with capabilities Parse capabilities
Start session based on capsStore session id for future calls
Server (appium)Client (test script)
Construct desired capabilities
Request a session with capabilities Parse capabilities
Start session based on capsStore session id for future calls
Send automation commands
Server (appium)Client (test script)
Construct desired capabilities
Request a session with capabilities Parse capabilities
Start session based on capsStore session id for future calls
Send automation commands Parse command request
Server (appium)Client (test script)
Construct desired capabilities
Request a session with capabilities Parse capabilities
Start session based on capsStore session id for future calls
Send automation commands Parse command request
Perform automation
Server (appium)Client (test script)
Construct desired capabilities
Request a session with capabilities Parse capabilities
Start session based on capsStore session id for future calls
Send automation commands Parse command request
Perform automationCheck result, make verifications,
etc…
Server (appium)Client (test script)
Construct desired capabilities
Request a session with capabilities Parse capabilities
Start session based on capsStore session id for future calls
Send automation commands Parse command request
Perform automationCheck result, make verifications,
etc…
Server (appium)Client (test script)
Construct desired capabilities
Request a session with capabilities Parse capabilities
Start session based on capsStore session id for future calls
Send automation commands Parse command request
Perform automationCheck result, make verifications,
etc…
Request session quit
Server (appium)Client (test script)
Construct desired capabilities
Request a session with capabilities Parse capabilities
Start session based on capsStore session id for future calls
Send automation commands Parse command request
Perform automationCheck result, make verifications,
etc…
Request session quit Shut down app, clean up resources
WebDriver / appium API Example Description
findElement
Find an element by its accessibility id, resource id,
xpath query, etc…
click Click/tap on a found element
getText Get the label/text of a found element
sendKeys
Type into an input field or adjust other UI controls
(like setting slider value)
appium philosophy
The world of mobile and other new
platform automation is constantly
changing
The world of mobile and other new
platform automation is constantly
changing
Earl GreyEspresso
XCUITest
UiAutomator
UiAutomator 2
UIAutomation
With each new technology come new
benefits, but also drawbacks and the pain
of relearning and rewriting everything
appium finds the best automation
technologies and translates them to the
same standard WebDriver API
The appium “umbrella”
• Get the benefits of new automation tech without having to
rewrite your tests
• Leverage your industry-standard Selenium/WebDriver
experience
• Write cross-platform tests: one API for multiple platforms
• Encourage platform vendors to support one stable and
standard protocol
appium platforms
Deprecated Platform Description
iOS - Instruments & UiAutomation
- Powered by Instruments & UiAutomation
- Available up till iOS 9.3
Android - UiAutomator
- Powered by UiAutomator
- Supported from Android 4.2
- Superseded by UiAutomator 2
Current Platform Description
iOS
- Powered by XCUITest (Apple) & WDA (Facebook)
- Available for iOS 9.3+
Android
- Powered by UiAutomator 2 (Google)
- Released before Android 6.0
Windows Desktop
- Powered by WinAppDriver (Microsoft)
- Released before Android 6.0
macOS Desktop
- Powered by Appium for Mac (community)
- Works with most versions of OS X
youi.tv
- Powered by youi-engine (Youi)
- Works with the Youi app framework
appium platform demos
Demo Code
github://jlipps/mobile-dev-test-examples
appium test writing
appium desktop is a point and click
interface for using appium and
inspecting your app’s structure
appium desktop makes it easy to get
started writing tests for your app by
showing you what elements you can use
appium desktop demo
appium vision
In a world of many automation platforms,
appium becomes more than a software
package bundling them all together
The driver portfolio grows
• WinAppDriver expands to support mobile, Xbox, more?
• Espresso support?
• Earl Grey support?
• Unity3d support?
• IoT platform support?
IoT??!??
• Automate IoT UIs (Android-based)
• Automate IoT framework software
• Lots of other possibilities…
appium 2.0 is…
• The WebDriver protocol (plus necessary extensions)
• A set of NodeJS libraries for writing drivers easily
• A loose federation of drivers maintained by communities
• A CLI tool for installing, managing, and running drivers
• Extending this tool to appium desktop
appium is the open-source, cross-
platform solution for native, web, and
hybrid mobile app automation
Thanks!
http://appium.io
https://github.com/appium/appium
@AppiumDevs • @saucelabs • @jlipps
Questions?
http://appium.io
https://github.com/appium/appium
@AppiumDevs • @saucelabs • @jlipps

More Related Content

PDF
Future of Mobile Automation, Appium Steals it
PDF
Appium Mobile Test Automation like WebDriver
PDF
Appium basics
PDF
What's New With Appium? From 1.0 to Now
PDF
Testing Native iOS Apps with Appium
PPTX
Everything You Need To Know about Appium and Selenium
PDF
Appium@Work at PAYBACK
PDF
10 things you didnt know about appium + whats new in appium 1.5
Future of Mobile Automation, Appium Steals it
Appium Mobile Test Automation like WebDriver
Appium basics
What's New With Appium? From 1.0 to Now
Testing Native iOS Apps with Appium
Everything You Need To Know about Appium and Selenium
Appium@Work at PAYBACK
10 things you didnt know about appium + whats new in appium 1.5

What's hot (20)

PPTX
Automation testing on ios platform using appium
PDF
Appium workshop technopark trivandrum
PDF
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium
PDF
Mobile Test Automation - Appium
PPTX
Wheat - Mobile functional test automation
ODP
Appium troubleshooting
PPTX
Parallel testing with appium
PPTX
Appium overview
PPTX
Do You Enjoy Espresso in Android App Testing?
PPTX
Live Panel: Appium Core Committers Answer Your Questions
PPTX
Appium meet up noida
PDF
Mobile automation – should I use robotium or calabash or appium?
PPTX
Mobile Automation Using Appium - vodQA Bangalore 2015
PDF
On boarding Appium Open Source
PDF
Espresso testing
PPTX
Selenium Camp 2016
PDF
Automated UI Testing Frameworks
PDF
[Srijan Wednesday Webinars] Building a High Performance QA Team
PDF
Appium: Mobile Automation Made Awesome
PPT
The Future of Selenium Testing for Mobile Web and Native Apps
Automation testing on ios platform using appium
Appium workshop technopark trivandrum
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium
Mobile Test Automation - Appium
Wheat - Mobile functional test automation
Appium troubleshooting
Parallel testing with appium
Appium overview
Do You Enjoy Espresso in Android App Testing?
Live Panel: Appium Core Committers Answer Your Questions
Appium meet up noida
Mobile automation – should I use robotium or calabash or appium?
Mobile Automation Using Appium - vodQA Bangalore 2015
On boarding Appium Open Source
Espresso testing
Selenium Camp 2016
Automated UI Testing Frameworks
[Srijan Wednesday Webinars] Building a High Performance QA Team
Appium: Mobile Automation Made Awesome
The Future of Selenium Testing for Mobile Web and Native Apps
Ad

Similar to The Present and Future of Mobile Test Automation with Appium (20)

PPTX
Appium Presentation
PPTX
appiumpresent-211128171811.pptx projet de presentation
PPTX
Appium Overview - by Daniel Puterman
PDF
A Comprehensive Guide to Cross-Platform Mobile Test Automation Using Appium.pdf
PPTX
Appium.pptx
PPTX
Appium solution
PPTX
Mobile Automation with Appium
PDF
Automated Mobile Testing using Appium.pdf
PPTX
Automation Testing With Appium
PDF
A Step-by-Step Guide to Test Automation with Appium.pdf
PPTX
Appium overview (Selenium Israel #2, Feb. 2014)
PPT
PPTX
Next level of Appium
PPTX
Appium solution artizone
PPT
Android & iOS Automation Using Appium
PPTX
Cross platform mobile UI automation testing
PPTX
Appium an introduction
PDF
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
PPTX
WhatIsAppium.pptx
PDF
Appium Automation Testing Tutorial PDF: Learn Mobile Testing in 7 Days
Appium Presentation
appiumpresent-211128171811.pptx projet de presentation
Appium Overview - by Daniel Puterman
A Comprehensive Guide to Cross-Platform Mobile Test Automation Using Appium.pdf
Appium.pptx
Appium solution
Mobile Automation with Appium
Automated Mobile Testing using Appium.pdf
Automation Testing With Appium
A Step-by-Step Guide to Test Automation with Appium.pdf
Appium overview (Selenium Israel #2, Feb. 2014)
Next level of Appium
Appium solution artizone
Android & iOS Automation Using Appium
Cross platform mobile UI automation testing
Appium an introduction
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
WhatIsAppium.pptx
Appium Automation Testing Tutorial PDF: Learn Mobile Testing in 7 Days
Ad

More from TechWell (20)

PDF
Failing and Recovering
PDF
Instill a DevOps Testing Culture in Your Team and Organization
PDF
Test Design for Fully Automated Build Architecture
PDF
System-Level Test Automation: Ensuring a Good Start
PDF
Build Your Mobile App Quality and Test Strategy
PDF
Testing Transformation: The Art and Science for Success
PDF
Implement BDD with Cucumber and SpecFlow
PDF
Develop WebDriver Automated Tests—and Keep Your Sanity
PDF
Ma 15
PDF
Eliminate Cloud Waste with a Holistic DevOps Strategy
PDF
Transform Test Organizations for the New World of DevOps
PDF
The Fourth Constraint in Project Delivery—Leadership
PDF
Resolve the Contradiction of Specialists within Agile Teams
PDF
Pin the Tail on the Metric: A Field-Tested Agile Game
PDF
Agile Performance Holarchy (APH)—A Model for Scaling Agile Teams
PDF
A Business-First Approach to DevOps Implementation
PDF
Databases in a Continuous Integration/Delivery Process
PDF
Mobile Testing: What—and What Not—to Automate
PDF
Cultural Intelligence: A Key Skill for Success
PDF
Turn the Lights On: A Power Utility Company's Agile Transformation
Failing and Recovering
Instill a DevOps Testing Culture in Your Team and Organization
Test Design for Fully Automated Build Architecture
System-Level Test Automation: Ensuring a Good Start
Build Your Mobile App Quality and Test Strategy
Testing Transformation: The Art and Science for Success
Implement BDD with Cucumber and SpecFlow
Develop WebDriver Automated Tests—and Keep Your Sanity
Ma 15
Eliminate Cloud Waste with a Holistic DevOps Strategy
Transform Test Organizations for the New World of DevOps
The Fourth Constraint in Project Delivery—Leadership
Resolve the Contradiction of Specialists within Agile Teams
Pin the Tail on the Metric: A Field-Tested Agile Game
Agile Performance Holarchy (APH)—A Model for Scaling Agile Teams
A Business-First Approach to DevOps Implementation
Databases in a Continuous Integration/Delivery Process
Mobile Testing: What—and What Not—to Automate
Cultural Intelligence: A Key Skill for Success
Turn the Lights On: A Power Utility Company's Agile Transformation

Recently uploaded (20)

PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PPTX
Reimagine Home Health with the Power of Agentic AI​
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
System and Network Administraation Chapter 3
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PPTX
ai tools demonstartion for schools and inter college
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PPTX
Introduction to Artificial Intelligence
PDF
top salesforce developer skills in 2025.pdf
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
VVF-Customer-Presentation2025-Ver1.9.pptx
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Reimagine Home Health with the Power of Agentic AI​
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
Wondershare Filmora 15 Crack With Activation Key [2025
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
Operating system designcfffgfgggggggvggggggggg
System and Network Administraation Chapter 3
CHAPTER 2 - PM Management and IT Context
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
ai tools demonstartion for schools and inter college
How to Migrate SBCGlobal Email to Yahoo Easily
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Upgrade and Innovation Strategies for SAP ERP Customers
Introduction to Artificial Intelligence
top salesforce developer skills in 2025.pdf

The Present and Future of Mobile Test Automation with Appium

  • 3. The Present and Future of Mobile Automation Jonathan Lipps • Director of Open Source • Sauce Labs 
 @AppiumDevs • @saucelabs • @jlipps Mobile Dev+Test • San Diego, CA April 28, 2017 Jonathan Lipps • Director of Open Source • Sauce Labs 
 @AppiumDevs • @saucelabs • @jlipps Director of Open Source Project Lead & Architect
  • 4. appium is the open-source, cross- platform solution for native, web, and hybrid mobile app automation appium introduction
  • 5. appium makes continuous integration possible by providing automation for mobile apps appium takes the best mobile automation technologies and gives them to you in a WebDriver interface
  • 6. Why WebDriver? It’s the globally-recognized W3C standard for browser automation WebDriver is an HTTP API POST /session POST /session/element GET /session/element/:id/:attr
  • 7. appium works with any language and any test runner / test framework, even custom ones Java : JS : Python : Ruby : PHP : C# : ObjC : Perl : Swift : Go appium enables true cross-platform test-writing. One API for iOS, Android, Windows, and macOS
  • 8. appium test model Server (appium)Client (test script)
  • 9. Server (appium)Client (test script) Construct desired capabilities Server (appium)Client (test script) Construct desired capabilities { "platformName": "iOS", "platformVersion": "10.2", "deviceName": "iPhone Simulator", "app": “/path/to/TestApp7.1.app”, "noReset": true }
  • 10. Server (appium)Client (test script) Construct desired capabilities Request a session with capabilities Server (appium)Client (test script) Construct desired capabilities Request a session with capabilities Parse capabilities
  • 11. Server (appium)Client (test script) Construct desired capabilities Request a session with capabilities Parse capabilities Start session based on caps Server (appium)Client (test script) Construct desired capabilities Request a session with capabilities Parse capabilities Start session based on capsStore session id for future calls
  • 12. Server (appium)Client (test script) Construct desired capabilities Request a session with capabilities Parse capabilities Start session based on capsStore session id for future calls Send automation commands Server (appium)Client (test script) Construct desired capabilities Request a session with capabilities Parse capabilities Start session based on capsStore session id for future calls Send automation commands Parse command request
  • 13. Server (appium)Client (test script) Construct desired capabilities Request a session with capabilities Parse capabilities Start session based on capsStore session id for future calls Send automation commands Parse command request Perform automation Server (appium)Client (test script) Construct desired capabilities Request a session with capabilities Parse capabilities Start session based on capsStore session id for future calls Send automation commands Parse command request Perform automationCheck result, make verifications, etc…
  • 14. Server (appium)Client (test script) Construct desired capabilities Request a session with capabilities Parse capabilities Start session based on capsStore session id for future calls Send automation commands Parse command request Perform automationCheck result, make verifications, etc… Server (appium)Client (test script) Construct desired capabilities Request a session with capabilities Parse capabilities Start session based on capsStore session id for future calls Send automation commands Parse command request Perform automationCheck result, make verifications, etc… Request session quit
  • 15. Server (appium)Client (test script) Construct desired capabilities Request a session with capabilities Parse capabilities Start session based on capsStore session id for future calls Send automation commands Parse command request Perform automationCheck result, make verifications, etc… Request session quit Shut down app, clean up resources WebDriver / appium API Example Description findElement Find an element by its accessibility id, resource id, xpath query, etc… click Click/tap on a found element getText Get the label/text of a found element sendKeys Type into an input field or adjust other UI controls (like setting slider value)
  • 16. appium philosophy The world of mobile and other new platform automation is constantly changing
  • 17. The world of mobile and other new platform automation is constantly changing Earl GreyEspresso XCUITest UiAutomator UiAutomator 2 UIAutomation With each new technology come new benefits, but also drawbacks and the pain of relearning and rewriting everything
  • 18. appium finds the best automation technologies and translates them to the same standard WebDriver API The appium “umbrella” • Get the benefits of new automation tech without having to rewrite your tests • Leverage your industry-standard Selenium/WebDriver experience • Write cross-platform tests: one API for multiple platforms • Encourage platform vendors to support one stable and standard protocol
  • 19. appium platforms Deprecated Platform Description iOS - Instruments & UiAutomation - Powered by Instruments & UiAutomation - Available up till iOS 9.3 Android - UiAutomator - Powered by UiAutomator - Supported from Android 4.2 - Superseded by UiAutomator 2
  • 20. Current Platform Description iOS - Powered by XCUITest (Apple) & WDA (Facebook) - Available for iOS 9.3+ Android - Powered by UiAutomator 2 (Google) - Released before Android 6.0 Windows Desktop - Powered by WinAppDriver (Microsoft) - Released before Android 6.0 macOS Desktop - Powered by Appium for Mac (community) - Works with most versions of OS X youi.tv - Powered by youi-engine (Youi) - Works with the Youi app framework appium platform demos
  • 22. appium desktop is a point and click interface for using appium and inspecting your app’s structure appium desktop makes it easy to get started writing tests for your app by showing you what elements you can use
  • 24. In a world of many automation platforms, appium becomes more than a software package bundling them all together The driver portfolio grows • WinAppDriver expands to support mobile, Xbox, more? • Espresso support? • Earl Grey support? • Unity3d support? • IoT platform support?
  • 25. IoT??!?? • Automate IoT UIs (Android-based) • Automate IoT framework software • Lots of other possibilities…
  • 26. appium 2.0 is… • The WebDriver protocol (plus necessary extensions) • A set of NodeJS libraries for writing drivers easily • A loose federation of drivers maintained by communities • A CLI tool for installing, managing, and running drivers • Extending this tool to appium desktop appium is the open-source, cross- platform solution for native, web, and hybrid mobile app automation
  • 27. Thanks! http://appium.io https://github.com/appium/appium @AppiumDevs • @saucelabs • @jlipps Questions? http://appium.io https://github.com/appium/appium @AppiumDevs • @saucelabs • @jlipps