SlideShare a Scribd company logo
1 of 40
SELENIUM CONFERENCE 2016
LONDON
Dan Cuellar
@thedancuellar
• Creator of Appium
• Principal Development Manager at FOODit
• Previously at Shazam, Zoosk, and Microsoft
• BS in Computer Science from Carnegie Mellon
• Brief Overview
• What’s New in Appium 1.6
• Mac & Windows Apps
• Advanced Appium
• Visual Testing
• Mechanical Testing
• Grab Bag
• Multiple Devices
• How to Read SMS
• Speeding up the iOS Simulator
• Network Conditioning
• Useful Capabilities
• Ask Me Anything
• An implementation of the Selenium JSON-wire protocol that
controls native and hybrid iOS and Android application
• The most popular open source mobile functional testing
framework
UIAutomation /
UIAutomator
Appium
Server
Test Script
JSON-Wire Protocol Request
JSON-Wire Protocol Response
HTTP
• Use standardized and sanctioned APIs and techniques
• Code in the language of your choice
• Java, C#, Python, Ruby, Objective-C, node.js, PHP, and more
• Do not modify the application under test
• Keep it free and open source
In the last 3 years
• Over 4,000 Stars, 2,000 Forks on GitHub
• Over 200 Contributors and 5,000 commits
• Over 150,000 downloads of Appium 1.0
• Over 4,000 issues closed
• Windows Support
• XCUITest based iOS implementation
• UIAutomator2 based Android support (BETA)
• js.foundation
• New GUIs
• Better docs and onboarding material
• StarDriver?
https://github.com/Microsoft/WinAppDriver
https://github.com/2gis/Winium
https://github.com/appium/appium-for-mac
https://medium.com/@SimonKaz/appium-with-
image-recognition-17a92abaa23d#.cdfhwinzk
• Calibrate the robot to map points in the physical world to points on a
device screen
• Run an app on the device with Appium that can tell you what
coordinates are being touched
• Touch three places on the device and record the physical and device-
centric coordinates
• Build a matrix to translate any point between the two systems
• Intercept touch actions with the Appium Server and send them to
the robot
• WebDriverAgent
• https://github.com/facebook/WebDriverAgent
• Multiple Simulators
• All Applications
• XCUITest
• Created by Apple
• Better support for future versions of iOS
• Xcode 7 and iOS 9 do not support installing the speedup tool
automatically that previous versions of Appium used
• No worries, you can install it manually
• https://github.com/appium/appium/blob/master/docs/en/advanced-
concepts/iwd_xcode7.md
• Now your iOS tests will be fast again
• Android
• autoWebView – start in the webview context (really useful for
Cordova apps)
• Android
• ignoreUnimportantViews – can speed up your Android tests
• nativeWebScreenshot – takes the screenshot from UIAutomator
instead of chromedriver
• iOS
• locationServicesAuthorized – pre-authorizes location services
(prevents an alert)
• Auto[Accept|Dismiss]Alerts – useful to prevent alerts
• nativeWebTap – uses non-javascript taps on web content
• safariIgnoreFraudWarning – allows https without proper certs
• interKeyDelay - time between keystrokes
• sendKeyStrategy – (oneByOne, grouped, or setValue)
driver.setNetworkConnection(value) [Android only]
Value (Alias) Data Wifi Airplane Mode
0 (None) 0 0 0
1 (Airplane Mode) 0 0 1
2 (Wifi only) 0 1 0
4 (Data only) 1 0 0
6 (All Network on) 1 1 0
PERSONAL TAKEAWAY
“Life can be much broader once you discover one simple fact:
Everything around you that you call life was made up by people that
were no smarter than you and you can change it, you can influence it,
you can build your own things that other people can use.
Once you learn that, you'll never be the same again.”
-Steve Jobs
Advanced Appium: SeleniumConf UK 2016
Advanced Appium: SeleniumConf UK 2016

More Related Content

What's hot

Appium Mobile Test Automation like WebDriver
Appium Mobile Test Automation like WebDriverAppium Mobile Test Automation like WebDriver
Appium Mobile Test Automation like WebDriver
Andrii Dzynia
 

What's hot (20)

[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
 
Selenium Camp 2016 - Kiev, Ukraine
Selenium Camp 2016 -  Kiev, UkraineSelenium Camp 2016 -  Kiev, Ukraine
Selenium Camp 2016 - Kiev, Ukraine
 
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
 
Automation Best Practices
Automation Best PracticesAutomation Best Practices
Automation Best Practices
 
[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
 
Building serverless-applications
Building serverless-applicationsBuilding serverless-applications
Building serverless-applications
 
Mobile automation using selenium cucumber & appium
Mobile automation using selenium cucumber & appiumMobile automation using selenium cucumber & appium
Mobile automation using selenium cucumber & appium
 
What's New With Appium? From 1.0 to Now
What's New With Appium? From 1.0 to NowWhat's New With Appium? From 1.0 to Now
What's New With Appium? From 1.0 to Now
 
Selenium Testing on Chrome - Google DevFest Armenia 2015
Selenium Testing on Chrome - Google DevFest Armenia 2015Selenium Testing on Chrome - Google DevFest Armenia 2015
Selenium Testing on Chrome - Google DevFest Armenia 2015
 
10 things you didnt know about appium + whats new in appium 1.5
10 things you didnt know about appium + whats new in appium 1.510 things you didnt know about appium + whats new in appium 1.5
10 things you didnt know about appium + whats new in appium 1.5
 
Appium Mobile Test Automation like WebDriver
Appium Mobile Test Automation like WebDriverAppium Mobile Test Automation like WebDriver
Appium Mobile Test Automation like WebDriver
 
Advanced automated visual testing with Selenium
Advanced automated visual testing with SeleniumAdvanced automated visual testing with Selenium
Advanced automated visual testing with Selenium
 
Awesome Test Automation Made Simple w/ Dave Haeffner
Awesome Test Automation Made Simple w/ Dave HaeffnerAwesome Test Automation Made Simple w/ Dave Haeffner
Awesome Test Automation Made Simple w/ Dave Haeffner
 
Appium
AppiumAppium
Appium
 
Cracking android app. Мокиенко Сергей
Cracking android app. Мокиенко СергейCracking android app. Мокиенко Сергей
Cracking android app. Мокиенко Сергей
 
Learnings from Hybrid App Testing Jijesh Mohan
Learnings from Hybrid App Testing Jijesh MohanLearnings from Hybrid App Testing Jijesh Mohan
Learnings from Hybrid App Testing Jijesh Mohan
 
Getting Started with Mobile Test Automation & Appium
Getting Started with Mobile Test Automation & AppiumGetting Started with Mobile Test Automation & Appium
Getting Started with Mobile Test Automation & Appium
 
Sauce Labs+Applitools - Automated Visual Testing in the Cloud
Sauce Labs+Applitools - Automated Visual Testing in the CloudSauce Labs+Applitools - Automated Visual Testing in the Cloud
Sauce Labs+Applitools - Automated Visual Testing in the Cloud
 
Everything You Need To Know about Appium and Selenium
Everything You Need To Know about Appium and SeleniumEverything You Need To Know about Appium and Selenium
Everything You Need To Know about Appium and Selenium
 
Android UI Testing with Appium
Android UI Testing with AppiumAndroid UI Testing with Appium
Android UI Testing with Appium
 

Viewers also liked

Automating the responsive website testing
Automating the responsive website testingAutomating the responsive website testing
Automating the responsive website testing
Birudugadda Pranathi
 
Testing responsive web design pdf
Testing responsive web design pdfTesting responsive web design pdf
Testing responsive web design pdf
crilusi
 

Viewers also liked (15)

Automating the responsive website testing
Automating the responsive website testingAutomating the responsive website testing
Automating the responsive website testing
 
Making cross browser tests beautiful
Making cross browser tests beautifulMaking cross browser tests beautiful
Making cross browser tests beautiful
 
Berlin Selenium Meetup - Galen Framework
Berlin Selenium Meetup -  Galen FrameworkBerlin Selenium Meetup -  Galen Framework
Berlin Selenium Meetup - Galen Framework
 
Automated layout testing using Galen Framework
Automated layout testing using Galen FrameworkAutomated layout testing using Galen Framework
Automated layout testing using Galen Framework
 
Get responsive with Galen
Get responsive with GalenGet responsive with Galen
Get responsive with Galen
 
Testing responsive web design pdf
Testing responsive web design pdfTesting responsive web design pdf
Testing responsive web design pdf
 
Testing Responsive Webdesign
Testing Responsive WebdesignTesting Responsive Webdesign
Testing Responsive Webdesign
 
Cross browser testing using BrowserStack
Cross browser testing using BrowserStack Cross browser testing using BrowserStack
Cross browser testing using BrowserStack
 
Responsive Web Design testing using Galen Framework
Responsive Web Design testing using Galen FrameworkResponsive Web Design testing using Galen Framework
Responsive Web Design testing using Galen Framework
 
Visual Regression Testing
Visual Regression TestingVisual Regression Testing
Visual Regression Testing
 
Grading the Quality of Selenium Tests
Grading the Quality of Selenium TestsGrading the Quality of Selenium Tests
Grading the Quality of Selenium Tests
 
Appium: Prime Cuts
Appium: Prime CutsAppium: Prime Cuts
Appium: Prime Cuts
 
A Complete Guide to Testing Responsive Websites
A Complete Guide to Testing Responsive WebsitesA Complete Guide to Testing Responsive Websites
A Complete Guide to Testing Responsive Websites
 
Galen Framework - Responsive Design Automation
Galen Framework - Responsive Design AutomationGalen Framework - Responsive Design Automation
Galen Framework - Responsive Design Automation
 
London Hashicorp Meetup #8 - Testing Programmable Infrastructure By Matt Long
London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt LongLondon Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long
London Hashicorp Meetup #8 - Testing Programmable Infrastructure By Matt Long
 

Similar to Advanced Appium: SeleniumConf UK 2016

Automated Mobile Testing using Appium.pdf
Automated Mobile Testing using Appium.pdfAutomated Mobile Testing using Appium.pdf
Automated Mobile Testing using Appium.pdf
Anand722237
 
Ios driver presentation copy
Ios driver presentation copyIos driver presentation copy
Ios driver presentation copy
David O'Dowd
 

Similar to Advanced Appium: SeleniumConf UK 2016 (20)

Appium - test automation for mobile apps
Appium - test automation for mobile appsAppium - test automation for mobile apps
Appium - test automation for mobile apps
 
Mobile Automation with Appium
Mobile Automation with AppiumMobile Automation with Appium
Mobile Automation with Appium
 
Appium overview (Selenium Israel #2, Feb. 2014)
Appium overview (Selenium Israel #2, Feb. 2014)Appium overview (Selenium Israel #2, Feb. 2014)
Appium overview (Selenium Israel #2, Feb. 2014)
 
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...
 
ATAGTR2017 Appium
ATAGTR2017 AppiumATAGTR2017 Appium
ATAGTR2017 Appium
 
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 ...
 
Appium.pptx
Appium.pptxAppium.pptx
Appium.pptx
 
Android Application Development Using Java
Android Application Development Using JavaAndroid Application Development Using Java
Android Application Development Using Java
 
Appium Introduction
Appium IntroductionAppium Introduction
Appium Introduction
 
Mobile Application Testing
Mobile Application TestingMobile Application Testing
Mobile Application Testing
 
Mobile Application Testing
Mobile Application Testing Mobile Application Testing
Mobile Application Testing
 
Automated Mobile Testing using Appium.pdf
Automated Mobile Testing using Appium.pdfAutomated Mobile Testing using Appium.pdf
Automated Mobile Testing using Appium.pdf
 
On boarding Appium Open Source
On boarding Appium Open SourceOn boarding Appium Open Source
On boarding Appium Open Source
 
Appium meet up noida
Appium meet up noidaAppium meet up noida
Appium meet up noida
 
Automation using Javascript
Automation using JavascriptAutomation using Javascript
Automation using Javascript
 
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
 
Ios driver presentation copy
Ios driver presentation copyIos driver presentation copy
Ios driver presentation copy
 
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
 
Mobile UI Testing using Appium and Docker
Mobile UI Testing using Appium and DockerMobile UI Testing using Appium and Docker
Mobile UI Testing using Appium and Docker
 
Dev ops for mobile apps at microsoft teams
Dev ops for mobile apps at microsoft teamsDev ops for mobile apps at microsoft teams
Dev ops for mobile apps at microsoft teams
 

Recently uploaded

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Recently uploaded (20)

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 

Advanced Appium: SeleniumConf UK 2016

  • 2. Dan Cuellar @thedancuellar • Creator of Appium • Principal Development Manager at FOODit • Previously at Shazam, Zoosk, and Microsoft • BS in Computer Science from Carnegie Mellon
  • 3.
  • 4.
  • 5. • Brief Overview • What’s New in Appium 1.6 • Mac & Windows Apps • Advanced Appium • Visual Testing • Mechanical Testing • Grab Bag • Multiple Devices • How to Read SMS • Speeding up the iOS Simulator • Network Conditioning • Useful Capabilities • Ask Me Anything
  • 6.
  • 7.
  • 8. • An implementation of the Selenium JSON-wire protocol that controls native and hybrid iOS and Android application • The most popular open source mobile functional testing framework
  • 9. UIAutomation / UIAutomator Appium Server Test Script JSON-Wire Protocol Request JSON-Wire Protocol Response HTTP
  • 10. • Use standardized and sanctioned APIs and techniques • Code in the language of your choice • Java, C#, Python, Ruby, Objective-C, node.js, PHP, and more • Do not modify the application under test • Keep it free and open source
  • 11. In the last 3 years • Over 4,000 Stars, 2,000 Forks on GitHub • Over 200 Contributors and 5,000 commits • Over 150,000 downloads of Appium 1.0 • Over 4,000 issues closed
  • 12.
  • 13. • Windows Support • XCUITest based iOS implementation • UIAutomator2 based Android support (BETA) • js.foundation
  • 14. • New GUIs • Better docs and onboarding material • StarDriver?
  • 15.
  • 18.
  • 19.
  • 21.
  • 22.
  • 23.
  • 24.
  • 26.
  • 27. • Calibrate the robot to map points in the physical world to points on a device screen • Run an app on the device with Appium that can tell you what coordinates are being touched • Touch three places on the device and record the physical and device- centric coordinates • Build a matrix to translate any point between the two systems • Intercept touch actions with the Appium Server and send them to the robot
  • 28.
  • 29.
  • 30. • WebDriverAgent • https://github.com/facebook/WebDriverAgent • Multiple Simulators • All Applications • XCUITest • Created by Apple • Better support for future versions of iOS
  • 31.
  • 32. • Xcode 7 and iOS 9 do not support installing the speedup tool automatically that previous versions of Appium used • No worries, you can install it manually • https://github.com/appium/appium/blob/master/docs/en/advanced- concepts/iwd_xcode7.md • Now your iOS tests will be fast again
  • 33. • Android • autoWebView – start in the webview context (really useful for Cordova apps) • Android • ignoreUnimportantViews – can speed up your Android tests • nativeWebScreenshot – takes the screenshot from UIAutomator instead of chromedriver
  • 34. • iOS • locationServicesAuthorized – pre-authorizes location services (prevents an alert) • Auto[Accept|Dismiss]Alerts – useful to prevent alerts • nativeWebTap – uses non-javascript taps on web content • safariIgnoreFraudWarning – allows https without proper certs • interKeyDelay - time between keystrokes • sendKeyStrategy – (oneByOne, grouped, or setValue)
  • 35. driver.setNetworkConnection(value) [Android only] Value (Alias) Data Wifi Airplane Mode 0 (None) 0 0 0 1 (Airplane Mode) 0 0 1 2 (Wifi only) 0 1 0 4 (Data only) 1 0 0 6 (All Network on) 1 1 0
  • 36.
  • 37.
  • 38. PERSONAL TAKEAWAY “Life can be much broader once you discover one simple fact: Everything around you that you call life was made up by people that were no smarter than you and you can change it, you can influence it, you can build your own things that other people can use. Once you learn that, you'll never be the same again.” -Steve Jobs