SlideShare a Scribd company logo
1 of 27
Download to read offline
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

What's hot

Automation testing on ios platform using appium
Automation testing on ios platform using appiumAutomation testing on ios platform using appium
Automation testing on ios platform using appiumAmbreen Khan
 
Appium workshop technopark trivandrum
Appium workshop technopark trivandrumAppium workshop technopark trivandrum
Appium workshop technopark trivandrumSyam Sasi
 
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with AppiumSrijan Technologies
 
Mobile Test Automation - Appium
Mobile Test Automation - AppiumMobile Test Automation - Appium
Mobile Test Automation - AppiumMaria Machlowska
 
Wheat - Mobile functional test automation
Wheat - Mobile functional test automationWheat - Mobile functional test automation
Wheat - Mobile functional test automationSunny Tambi
 
Appium troubleshooting
Appium troubleshootingAppium troubleshooting
Appium troubleshootingadi ben aroya
 
Parallel testing with appium
Parallel testing with appiumParallel testing with appium
Parallel testing with appiummoizjv
 
Do You Enjoy Espresso in Android App Testing?
Do You Enjoy Espresso in Android App Testing?Do You Enjoy Espresso in Android App Testing?
Do You Enjoy Espresso in Android App Testing?Bitbar
 
Live Panel: Appium Core Committers Answer Your Questions
Live Panel: Appium Core Committers Answer Your Questions		Live Panel: Appium Core Committers Answer Your Questions
Live Panel: Appium Core Committers Answer Your Questions Sauce Labs
 
Appium meet up noida
Appium meet up noidaAppium meet up noida
Appium meet up noidaAmit Rawat
 
Mobile automation – should I use robotium or calabash or appium?
Mobile automation – should I use robotium or calabash or appium?Mobile automation – should I use robotium or calabash or appium?
Mobile automation – should I use robotium or calabash or appium?Zado Technologies
 
Mobile Automation Using Appium - vodQA Bangalore 2015
Mobile Automation Using Appium - vodQA Bangalore 2015Mobile Automation Using Appium - vodQA Bangalore 2015
Mobile Automation Using Appium - vodQA Bangalore 2015Thoughtworks
 
On boarding Appium Open Source
On boarding Appium Open SourceOn boarding Appium Open Source
On boarding Appium Open SourceAsaf Saar
 
Espresso testing
Espresso testingEspresso testing
Espresso testingvodqancr
 
Selenium Camp 2016
Selenium Camp 2016Selenium Camp 2016
Selenium Camp 2016Dan Cuellar
 
[Srijan Wednesday Webinars] Building a High Performance QA Team
[Srijan Wednesday Webinars] Building a High Performance QA Team[Srijan Wednesday Webinars] Building a High Performance QA Team
[Srijan Wednesday Webinars] Building a High Performance QA TeamSrijan Technologies
 
Appium: Mobile Automation Made Awesome
Appium: Mobile Automation Made AwesomeAppium: Mobile Automation Made Awesome
Appium: Mobile Automation Made AwesomeNetcetera
 
The Future of Selenium Testing for Mobile Web and Native Apps
The Future of Selenium Testing for Mobile Web and Native AppsThe Future of Selenium Testing for Mobile Web and Native Apps
The Future of Selenium Testing for Mobile Web and Native AppsSauce Labs
 

What's hot (20)

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

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

Mobile Automation with Appium
Mobile Automation with AppiumMobile Automation with Appium
Mobile Automation with AppiumManoj Kumar Kumar
 
Uber Mobility Meetup: Mobile Testing
Uber Mobility Meetup:  Mobile TestingUber Mobility Meetup:  Mobile Testing
Uber Mobility Meetup: Mobile TestingApple Chow
 
Enterprise E-commerce Webinar Series, Episode 2: Deploying and Monitoring You...
Enterprise E-commerce Webinar Series, Episode 2: Deploying and Monitoring You...Enterprise E-commerce Webinar Series, Episode 2: Deploying and Monitoring You...
Enterprise E-commerce Webinar Series, Episode 2: Deploying and Monitoring You...Kin Lane
 
Quality Jam 2017: Elise Carmichael and Corey Pyle "Jumpstarting Your Test Aut...
Quality Jam 2017: Elise Carmichael and Corey Pyle "Jumpstarting Your Test Aut...Quality Jam 2017: Elise Carmichael and Corey Pyle "Jumpstarting Your Test Aut...
Quality Jam 2017: Elise Carmichael and Corey Pyle "Jumpstarting Your Test Aut...QASymphony
 
Java Test Automation for REST, Web and Mobile
Java Test Automation for REST, Web and MobileJava Test Automation for REST, Web and Mobile
Java Test Automation for REST, Web and MobileElias Nogueira
 
AWS Summit Auckland - Application Delivery Patterns for Developers
AWS Summit Auckland - Application Delivery Patterns for DevelopersAWS Summit Auckland - Application Delivery Patterns for Developers
AWS Summit Auckland - Application Delivery Patterns for DevelopersAmazon Web Services
 
Speed upyourtest with_appium
Speed upyourtest with_appiumSpeed upyourtest with_appium
Speed upyourtest with_appiumVodqaBLR
 
Webinar: Automate Your Environment Provisioning for Mobile App Development
Webinar: Automate Your Environment Provisioning for Mobile App Development Webinar: Automate Your Environment Provisioning for Mobile App Development
Webinar: Automate Your Environment Provisioning for Mobile App Development Skytap Cloud
 
Mobile Development integration tests
Mobile Development integration testsMobile Development integration tests
Mobile Development integration testsKenneth Poon
 
Enterprise E-commerce Webinar #2 - Deploy & Monitor APIs
Enterprise E-commerce Webinar #2 - Deploy & Monitor APIsEnterprise E-commerce Webinar #2 - Deploy & Monitor APIs
Enterprise E-commerce Webinar #2 - Deploy & Monitor APIsPostman
 
Shifting landscape of mobile automation, and the future of Appium - Jonathan ...
Shifting landscape of mobile automation, and the future of Appium - Jonathan ...Shifting landscape of mobile automation, and the future of Appium - Jonathan ...
Shifting landscape of mobile automation, and the future of Appium - Jonathan ...Applitools
 
Uber’s Fascinating World of Inter-App Communications
Uber’s Fascinating World of Inter-App CommunicationsUber’s Fascinating World of Inter-App Communications
Uber’s Fascinating World of Inter-App CommunicationsJosiah Renaudin
 
Front-End Testing: Demystified
Front-End Testing: DemystifiedFront-End Testing: Demystified
Front-End Testing: DemystifiedSeth McLaughlin
 
Selenium Conference Austin 2017 - Automate Windows and Mac Apps With The WebD...
Selenium Conference Austin 2017 - Automate Windows and Mac Apps With The WebD...Selenium Conference Austin 2017 - Automate Windows and Mac Apps With The WebD...
Selenium Conference Austin 2017 - Automate Windows and Mac Apps With The WebD...Selenium Conference Austin 2017
 
Designing an effective hybrid apps automation framework
Designing an effective hybrid apps automation frameworkDesigning an effective hybrid apps automation framework
Designing an effective hybrid apps automation frameworkAndrea Tino
 

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

Mobile Automation with Appium
Mobile Automation with AppiumMobile Automation with Appium
Mobile Automation with Appium
 
Appium.pptx
Appium.pptxAppium.pptx
Appium.pptx
 
Uber Mobility Meetup: Mobile Testing
Uber Mobility Meetup:  Mobile TestingUber Mobility Meetup:  Mobile Testing
Uber Mobility Meetup: Mobile Testing
 
Enterprise E-commerce Webinar Series, Episode 2: Deploying and Monitoring You...
Enterprise E-commerce Webinar Series, Episode 2: Deploying and Monitoring You...Enterprise E-commerce Webinar Series, Episode 2: Deploying and Monitoring You...
Enterprise E-commerce Webinar Series, Episode 2: Deploying and Monitoring You...
 
Quality Jam 2017: Elise Carmichael and Corey Pyle "Jumpstarting Your Test Aut...
Quality Jam 2017: Elise Carmichael and Corey Pyle "Jumpstarting Your Test Aut...Quality Jam 2017: Elise Carmichael and Corey Pyle "Jumpstarting Your Test Aut...
Quality Jam 2017: Elise Carmichael and Corey Pyle "Jumpstarting Your Test Aut...
 
Java Test Automation for REST, Web and Mobile
Java Test Automation for REST, Web and MobileJava Test Automation for REST, Web and Mobile
Java Test Automation for REST, Web and Mobile
 
Automation using Appium
Automation using AppiumAutomation using Appium
Automation using Appium
 
AWS Summit Auckland - Application Delivery Patterns for Developers
AWS Summit Auckland - Application Delivery Patterns for DevelopersAWS Summit Auckland - Application Delivery Patterns for Developers
AWS Summit Auckland - Application Delivery Patterns for Developers
 
Appium solution
Appium solutionAppium solution
Appium solution
 
Speed upyourtest with_appium
Speed upyourtest with_appiumSpeed upyourtest with_appium
Speed upyourtest with_appium
 
Webinar: Automate Your Environment Provisioning for Mobile App Development
Webinar: Automate Your Environment Provisioning for Mobile App Development Webinar: Automate Your Environment Provisioning for Mobile App Development
Webinar: Automate Your Environment Provisioning for Mobile App Development
 
Mobile Development integration tests
Mobile Development integration testsMobile Development integration tests
Mobile Development integration tests
 
Enterprise E-commerce Webinar #2 - Deploy & Monitor APIs
Enterprise E-commerce Webinar #2 - Deploy & Monitor APIsEnterprise E-commerce Webinar #2 - Deploy & Monitor APIs
Enterprise E-commerce Webinar #2 - Deploy & Monitor APIs
 
Shifting landscape of mobile automation, and the future of Appium - Jonathan ...
Shifting landscape of mobile automation, and the future of Appium - Jonathan ...Shifting landscape of mobile automation, and the future of Appium - Jonathan ...
Shifting landscape of mobile automation, and the future of Appium - Jonathan ...
 
Uber’s Fascinating World of Inter-App Communications
Uber’s Fascinating World of Inter-App CommunicationsUber’s Fascinating World of Inter-App Communications
Uber’s Fascinating World of Inter-App Communications
 
Front-End Testing: Demystified
Front-End Testing: DemystifiedFront-End Testing: Demystified
Front-End Testing: Demystified
 
Next level of Appium
Next level of AppiumNext level of Appium
Next level of Appium
 
ATAGTR2017 Appium
ATAGTR2017 AppiumATAGTR2017 Appium
ATAGTR2017 Appium
 
Selenium Conference Austin 2017 - Automate Windows and Mac Apps With The WebD...
Selenium Conference Austin 2017 - Automate Windows and Mac Apps With The WebD...Selenium Conference Austin 2017 - Automate Windows and Mac Apps With The WebD...
Selenium Conference Austin 2017 - Automate Windows and Mac Apps With The WebD...
 
Designing an effective hybrid apps automation framework
Designing an effective hybrid apps automation frameworkDesigning an effective hybrid apps automation framework
Designing an effective hybrid apps automation framework
 

More from TechWell

Failing and Recovering
Failing and RecoveringFailing and Recovering
Failing and RecoveringTechWell
 
Instill a DevOps Testing Culture in Your Team and Organization
Instill a DevOps Testing Culture in Your Team and Organization Instill a DevOps Testing Culture in Your Team and Organization
Instill a DevOps Testing Culture in Your Team and Organization TechWell
 
Test Design for Fully Automated Build Architecture
Test Design for Fully Automated Build ArchitectureTest Design for Fully Automated Build Architecture
Test Design for Fully Automated Build ArchitectureTechWell
 
System-Level Test Automation: Ensuring a Good Start
System-Level Test Automation: Ensuring a Good StartSystem-Level Test Automation: Ensuring a Good Start
System-Level Test Automation: Ensuring a Good StartTechWell
 
Build Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test StrategyBuild Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test StrategyTechWell
 
Testing Transformation: The Art and Science for Success
Testing Transformation: The Art and Science for SuccessTesting Transformation: The Art and Science for Success
Testing Transformation: The Art and Science for SuccessTechWell
 
Implement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlowImplement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlowTechWell
 
Develop WebDriver Automated Tests—and Keep Your Sanity
Develop WebDriver Automated Tests—and Keep Your SanityDevelop WebDriver Automated Tests—and Keep Your Sanity
Develop WebDriver Automated Tests—and Keep Your SanityTechWell
 
Eliminate Cloud Waste with a Holistic DevOps Strategy
Eliminate Cloud Waste with a Holistic DevOps StrategyEliminate Cloud Waste with a Holistic DevOps Strategy
Eliminate Cloud Waste with a Holistic DevOps StrategyTechWell
 
Transform Test Organizations for the New World of DevOps
Transform Test Organizations for the New World of DevOpsTransform Test Organizations for the New World of DevOps
Transform Test Organizations for the New World of DevOpsTechWell
 
The Fourth Constraint in Project Delivery—Leadership
The Fourth Constraint in Project Delivery—LeadershipThe Fourth Constraint in Project Delivery—Leadership
The Fourth Constraint in Project Delivery—LeadershipTechWell
 
Resolve the Contradiction of Specialists within Agile Teams
Resolve the Contradiction of Specialists within Agile TeamsResolve the Contradiction of Specialists within Agile Teams
Resolve the Contradiction of Specialists within Agile TeamsTechWell
 
Pin the Tail on the Metric: A Field-Tested Agile Game
Pin the Tail on the Metric: A Field-Tested Agile GamePin the Tail on the Metric: A Field-Tested Agile Game
Pin the Tail on the Metric: A Field-Tested Agile GameTechWell
 
Agile Performance Holarchy (APH)—A Model for Scaling Agile Teams
Agile Performance Holarchy (APH)—A Model for Scaling Agile TeamsAgile Performance Holarchy (APH)—A Model for Scaling Agile Teams
Agile Performance Holarchy (APH)—A Model for Scaling Agile TeamsTechWell
 
A Business-First Approach to DevOps Implementation
A Business-First Approach to DevOps ImplementationA Business-First Approach to DevOps Implementation
A Business-First Approach to DevOps ImplementationTechWell
 
Databases in a Continuous Integration/Delivery Process
Databases in a Continuous Integration/Delivery ProcessDatabases in a Continuous Integration/Delivery Process
Databases in a Continuous Integration/Delivery ProcessTechWell
 
Mobile Testing: What—and What Not—to Automate
Mobile Testing: What—and What Not—to AutomateMobile Testing: What—and What Not—to Automate
Mobile Testing: What—and What Not—to AutomateTechWell
 
Cultural Intelligence: A Key Skill for Success
Cultural Intelligence: A Key Skill for SuccessCultural Intelligence: A Key Skill for Success
Cultural Intelligence: A Key Skill for SuccessTechWell
 
Turn the Lights On: A Power Utility Company's Agile Transformation
Turn the Lights On: A Power Utility Company's Agile TransformationTurn the Lights On: A Power Utility Company's Agile Transformation
Turn the Lights On: A Power Utility Company's Agile TransformationTechWell
 

More from TechWell (20)

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

Recently uploaded

Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Mater
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....kzayra69
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noidabntitsolutionsrishis
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentationvaddepallysandeep122
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfLivetecs LLC
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Best Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdfBest Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdfIdiosysTechnologies1
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 

Recently uploaded (20)

Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentation
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdf
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Best Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdfBest Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdf
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 

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