SlideShare a Scribd company logo
1 of 29
AN OVERVIEW
OF
Appium
Feb. 2014
Daniel Puterman (LinkedIn, twitter)
Sr. developer
whoami?
• Been programming forever.
• Currently lead developer at Applitools (check out our intro video).
• Before:
•
•
•
•
•

Vioozer
iCircl
Matrix
Beyond Security
….

• Team leader, Developer, Entreprenuer.
APPIUM AUTOMATES MOBILE
APPS
“Appium is an open source test
automation framework for use with native
and hybrid mobile apps.”
A rising star..
DEMO
Code for the demo available in:
https://github.com/danielputerman/appium-overview
Automating with Appium
Appium was created with 4 design goals in mind:

• Test the same app you submit to the market place.
• Write tests in any language, on any platform.
• Use standard automation specification / api.
• Open source.
Soooo… Ummmm……
WebDriver!
How does it work?

UIAutomator

Test Code
Instruments
Therefore…
ONE
SCRIPT
TO
RULE
THEM
ALL
No Proprietary IDE / Language
OPEN SOURCE
https://github.com/appium/appium/blob/master/LICENSE

APACHE LICENSE 2.0
Supported platforms

• Native & Hybrid apps
• Real devices & Simulators
• Available also on the grid (e.g., SauceLabs)

And….
• Even works with Robots
A little deeper: Android
A little deeper: iOS
Show me the code!
Code for available in:
https://github.com/danielputerman/appium-overview
Finding elements
Appium translates webdriver “find” commands to the relevant
automation API provided by each platform:
Four “find” methods available
• “name”: The text on the element / accessibility identifier
• “tag_name”: the type of an element, e.g., “button”, “textfield” etc.
• Mapping:
https://github.com/appium/appium/blob/master/lib/devices/ios/uiauto/lib/mechanic.js
#L29

• “Xpath”: Using the element hierarchy.
• “ID”: Available for Android when running with “selendroid” as device.
Finding elements by name
driver.find_element(:name, “New note”)
Searches label text / accessibility fields for each platform (“contentDescription” on android, “name” on iOS)
Finding elements by tag name
driver.find_element(:tag_name, “textfield”)
Searches for an element of the specified type.
Finding elements by xpath
@driver.find_element(:xpath, '//text[contains(@value, “another”)]')
@driver.find_element(:xpath, '//text[last()]')
There are limitations, of course!
• Instruments is a singleton
• No parallel testing of iOS apps on the same OSX instance.
• Limited VM scalability.

• Appium is a relatively new product and is in the process of maturing.
• Documentation is not bad, but can be improved quite a bit.
• Error messages (especially for iOS) can be sometimes hard to figure
out.
The future
• Mobile Json Wire Protocol (part of
Selenium 3)
https://code.google.com/p/selenium/source/
browse/spec-draft.md?repo=mobile
• Joint effort of Appium, Facebook, Ebay and Mozilla
• Appium would implement the protocol + backword
compatibility.

• Additional platforms
• Appium Doctor
• Advanced gestures
Tips I: Appium setup
• Pay attention to the requirements!
• Node version (>= 0.8)
• Android API >= 17 (i.e. 4.2.2 and above)
• Windows is still considered beta, though seems to be working fine 

• iOS
• Mac OS X 10.7 or higher, 10.8.4 recommended
• XCode >= 4.6.3
• Apple Developer Tools (iPhone simulator SDK, command line tools)

• For Mac, make sure you use the XCode version matching the iOS
version you wish to test
• https://github.com/appium/appium/blob/master/docs/running-on-osx.md#testing-against-multiple-ios-sdks
Tips II: running Appium
• Desired capabilities, Desired capabilities, Desired capabilities!
• On linux/Mac use ‘sudo –E’ (or ‘sudo –sE’) to have the environment
variables available when Appium is run.
• Notice the IP you listen to when starting Appium (the ‘-a’ parameter):
• 127.0.0.1 will only listen to itself and localhost.
• 0.0.0.0 will listen to itself, localhost, 127.0.0.1 and the actual computer IP(s).

• Parallel testing?
• Run multiple Appium servers, each listening to a different port, and to a
specific device using the ‘–U’ option.

• Use ‘–full-reset’ when running on Android, so tests will start from a
clean environment.
FAQ
Q: Can I automate webview applications?
A: Definitely.
1.
2.
3.
4.

If you’re using Android, the “device” in the desired capabilities should be set to
“selendroid”.
Switch to webview: driver.switch_to_window(“WEBVIEW”)
Automate as standard web.
If required: driver.switch_to_window(“NATIVE”)

Q: What about an application which activates another application? (FB, maps etc.)
A: Depends
• For Android, not a problem.
• For iOS, switching to a different application loses the context in which the automation run.
You need to create a new session when coming back from the external application.
https://groups.google.com/forum/#!topic/appium-discuss/38wLkiS_7L0
FAQ Cont.
Q: Can I automate an application already installed on a device (without having the app file
on my computer)?

A: Yes and no 
• Android: You can, either for simulator or for real device (just set ‘app-package’ and ‘app-activity’).
• iOS: No problem if you use a simulator (use ‘bundleId’ as the value to the ‘app’ parameter), but for a
real device you must have the app file on your computer.
UI Validation
DEMO
Code for available in:
https://github.com/danielputerman/appium-overview
Additional resources
• Appium website
• Home: http://appium.io/
• Documentation: http://appium.io/getting-started.html

• Appium forum on google. If you have a question or a problem, this is
the place to go.
• https://groups.google.com/forum/#!forum/appium-discuss

• Code for the demos
• https://github.com/danielputerman/appium-overview
Thanks!

More Related Content

What's hot

[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
 
Appium Mobile Test Automation like WebDriver
Appium Mobile Test Automation like WebDriverAppium Mobile Test Automation like WebDriver
Appium Mobile Test Automation like WebDriverAndrii Dzynia
 
Appium Interview Questions and Answers | Edureka
Appium Interview Questions and Answers | EdurekaAppium Interview Questions and Answers | Edureka
Appium Interview Questions and Answers | EdurekaEdureka!
 
Automation With Appium
Automation With AppiumAutomation With Appium
Automation With AppiumKnoldus Inc.
 
Future of Mobile Automation, Appium Steals it
Future of Mobile Automation, Appium Steals itFuture of Mobile Automation, Appium Steals it
Future of Mobile Automation, Appium Steals itSrinivasan Sekar
 
Appium overview session final
Appium overview session finalAppium overview session final
Appium overview session finalAbhishek Yadav
 
Using Selenium to Test Native Apps (Wait, you can do that?)
Using Selenium to Test Native Apps (Wait, you can do that?)Using Selenium to Test Native Apps (Wait, you can do that?)
Using Selenium to Test Native Apps (Wait, you can do that?)Sauce Labs
 
Appium tutorial| Appium Training
Appium tutorial| Appium Training Appium tutorial| Appium Training
Appium tutorial| Appium Training QA Masters
 
Parallel testing with appium
Parallel testing with appiumParallel testing with appium
Parallel testing with appiummoizjv
 
Parallel Test Runs with Appium on Real Mobile Devices – Hands-on Webinar
Parallel Test Runs with Appium on Real Mobile Devices – Hands-on WebinarParallel Test Runs with Appium on Real Mobile Devices – Hands-on Webinar
Parallel Test Runs with Appium on Real Mobile Devices – Hands-on WebinarBitbar
 
Mastering Mobile Test Automation with Appium
Mastering Mobile Test Automation with AppiumMastering Mobile Test Automation with Appium
Mastering Mobile Test Automation with AppiumPerfecto by Perforce
 
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 NowSauce Labs
 
Cross Platform Appium Tests: How To
Cross Platform Appium Tests: How ToCross Platform Appium Tests: How To
Cross Platform Appium Tests: How ToGlobalLogic Ukraine
 
Wheat - Mobile functional test automation
Wheat - Mobile functional test automationWheat - Mobile functional test automation
Wheat - Mobile functional test automationSunny Tambi
 
Android & iOS Automation Using Appium
Android & iOS Automation Using AppiumAndroid & iOS Automation Using Appium
Android & iOS Automation Using AppiumMindfire Solutions
 

What's hot (20)

[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
 
Appium Mobile Test Automation like WebDriver
Appium Mobile Test Automation like WebDriverAppium Mobile Test Automation like WebDriver
Appium Mobile Test Automation like WebDriver
 
Appium Interview Questions and Answers | Edureka
Appium Interview Questions and Answers | EdurekaAppium Interview Questions and Answers | Edureka
Appium Interview Questions and Answers | Edureka
 
Appium
AppiumAppium
Appium
 
Automation With Appium
Automation With AppiumAutomation With Appium
Automation With Appium
 
Future of Mobile Automation, Appium Steals it
Future of Mobile Automation, Appium Steals itFuture of Mobile Automation, Appium Steals it
Future of Mobile Automation, Appium Steals it
 
ATAGTR2017 Appium
ATAGTR2017 AppiumATAGTR2017 Appium
ATAGTR2017 Appium
 
Appium ppt
Appium pptAppium ppt
Appium ppt
 
Appium overview session final
Appium overview session finalAppium overview session final
Appium overview session final
 
Using Selenium to Test Native Apps (Wait, you can do that?)
Using Selenium to Test Native Apps (Wait, you can do that?)Using Selenium to Test Native Apps (Wait, you can do that?)
Using Selenium to Test Native Apps (Wait, you can do that?)
 
Appium tutorial| Appium Training
Appium tutorial| Appium Training Appium tutorial| Appium Training
Appium tutorial| Appium Training
 
Parallel testing with appium
Parallel testing with appiumParallel testing with appium
Parallel testing with appium
 
Appium solution artizone
Appium solution   artizoneAppium solution   artizone
Appium solution artizone
 
Parallel Test Runs with Appium on Real Mobile Devices – Hands-on Webinar
Parallel Test Runs with Appium on Real Mobile Devices – Hands-on WebinarParallel Test Runs with Appium on Real Mobile Devices – Hands-on Webinar
Parallel Test Runs with Appium on Real Mobile Devices – Hands-on Webinar
 
Mastering Mobile Test Automation with Appium
Mastering Mobile Test Automation with AppiumMastering Mobile Test Automation with Appium
Mastering Mobile Test Automation with 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
 
Appium testing api
Appium testing apiAppium testing api
Appium testing api
 
Cross Platform Appium Tests: How To
Cross Platform Appium Tests: How ToCross Platform Appium Tests: How To
Cross Platform Appium Tests: How To
 
Wheat - Mobile functional test automation
Wheat - Mobile functional test automationWheat - Mobile functional test automation
Wheat - Mobile functional test automation
 
Android & iOS Automation Using Appium
Android & iOS Automation Using AppiumAndroid & iOS Automation Using Appium
Android & iOS Automation Using Appium
 

Similar to Appium overview (Selenium Israel #2, Feb. 2014)

Appium Overview - by Daniel Puterman
Appium Overview - by Daniel PutermanAppium Overview - by Daniel Puterman
Appium Overview - by Daniel PutermanApplitools
 
Selenium Camp 2016 - Kiev, Ukraine
Selenium Camp 2016 -  Kiev, UkraineSelenium Camp 2016 -  Kiev, Ukraine
Selenium Camp 2016 - Kiev, UkraineJustin Ison
 
appiumpresent-211128171811.pptx projet de presentation
appiumpresent-211128171811.pptx projet de presentationappiumpresent-211128171811.pptx projet de presentation
appiumpresent-211128171811.pptx projet de presentationEnochBidima3
 
Appium Presentation
Appium Presentation Appium Presentation
Appium Presentation OmarUsman6
 
Woodoo - an open source mobile testing framework
Woodoo - an open source mobile testing frameworkWoodoo - an open source mobile testing framework
Woodoo - an open source mobile testing frameworkDaniel Ben yosef
 
Advanced Appium: SeleniumConf UK 2016
Advanced Appium: SeleniumConf UK 2016Advanced Appium: SeleniumConf UK 2016
Advanced Appium: SeleniumConf UK 2016Dan Cuellar
 
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 DockerMoataz Nabil
 
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
 
Closer To the Metal - Why and How We Use XCTest and Espresso by Mario Negro P...
Closer To the Metal - Why and How We Use XCTest and Espresso by Mario Negro P...Closer To the Metal - Why and How We Use XCTest and Espresso by Mario Negro P...
Closer To the Metal - Why and How We Use XCTest and Espresso by Mario Negro P...Sauce Labs
 
Mobile Automation with Appium
Mobile Automation with AppiumMobile Automation with Appium
Mobile Automation with AppiumManoj Kumar Kumar
 
2012 mobile testingsummit-moet
2012 mobile testingsummit-moet2012 mobile testingsummit-moet
2012 mobile testingsummit-moetEing Ong
 
Appium mobile web+dev conference
Appium   mobile web+dev conferenceAppium   mobile web+dev conference
Appium mobile web+dev conferenceIsaac Murchie
 
Android Application Development Using Java
Android Application Development Using JavaAndroid Application Development Using Java
Android Application Development Using Javaamaankhan
 
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
 
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
 
DCAST Meetup - Washington, DC Feb 2016
DCAST Meetup - Washington, DC Feb 2016DCAST Meetup - Washington, DC Feb 2016
DCAST Meetup - Washington, DC Feb 2016Justin Ison
 

Similar to Appium overview (Selenium Israel #2, Feb. 2014) (20)

Appium Overview - by Daniel Puterman
Appium Overview - by Daniel PutermanAppium Overview - by Daniel Puterman
Appium Overview - by Daniel Puterman
 
Selenium Camp 2016 - Kiev, Ukraine
Selenium Camp 2016 -  Kiev, UkraineSelenium Camp 2016 -  Kiev, Ukraine
Selenium Camp 2016 - Kiev, Ukraine
 
Appium.pptx
Appium.pptxAppium.pptx
Appium.pptx
 
appiumpresent-211128171811.pptx projet de presentation
appiumpresent-211128171811.pptx projet de presentationappiumpresent-211128171811.pptx projet de presentation
appiumpresent-211128171811.pptx projet de presentation
 
Appium Presentation
Appium Presentation Appium Presentation
Appium Presentation
 
Woodoo - an open source mobile testing framework
Woodoo - an open source mobile testing frameworkWoodoo - an open source mobile testing framework
Woodoo - an open source mobile testing framework
 
Advanced Appium: SeleniumConf UK 2016
Advanced Appium: SeleniumConf UK 2016Advanced Appium: SeleniumConf UK 2016
Advanced Appium: SeleniumConf UK 2016
 
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
 
Automation using Appium
Automation using AppiumAutomation using Appium
Automation using 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 ...
 
Closer To the Metal - Why and How We Use XCTest and Espresso by Mario Negro P...
Closer To the Metal - Why and How We Use XCTest and Espresso by Mario Negro P...Closer To the Metal - Why and How We Use XCTest and Espresso by Mario Negro P...
Closer To the Metal - Why and How We Use XCTest and Espresso by Mario Negro P...
 
Mobile Automation with Appium
Mobile Automation with AppiumMobile Automation with Appium
Mobile Automation with Appium
 
Advanced Appium
Advanced AppiumAdvanced Appium
Advanced Appium
 
2012 mobile testingsummit-moet
2012 mobile testingsummit-moet2012 mobile testingsummit-moet
2012 mobile testingsummit-moet
 
Appium mobile web+dev conference
Appium   mobile web+dev conferenceAppium   mobile web+dev conference
Appium mobile web+dev conference
 
Appium solution
Appium solutionAppium solution
Appium solution
 
Android Application Development Using Java
Android Application Development Using JavaAndroid Application Development Using Java
Android Application Development Using Java
 
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
 
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
 
DCAST Meetup - Washington, DC Feb 2016
DCAST Meetup - Washington, DC Feb 2016DCAST Meetup - Washington, DC Feb 2016
DCAST Meetup - Washington, DC Feb 2016
 

Recently uploaded

Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 

Recently uploaded (20)

Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 

Appium overview (Selenium Israel #2, Feb. 2014)

  • 1. AN OVERVIEW OF Appium Feb. 2014 Daniel Puterman (LinkedIn, twitter) Sr. developer
  • 2. whoami? • Been programming forever. • Currently lead developer at Applitools (check out our intro video). • Before: • • • • • Vioozer iCircl Matrix Beyond Security …. • Team leader, Developer, Entreprenuer.
  • 3. APPIUM AUTOMATES MOBILE APPS “Appium is an open source test automation framework for use with native and hybrid mobile apps.”
  • 5. DEMO Code for the demo available in: https://github.com/danielputerman/appium-overview
  • 6. Automating with Appium Appium was created with 4 design goals in mind: • Test the same app you submit to the market place. • Write tests in any language, on any platform. • Use standard automation specification / api. • Open source. Soooo… Ummmm……
  • 8. How does it work? UIAutomator Test Code Instruments
  • 11. No Proprietary IDE / Language
  • 13. Supported platforms • Native & Hybrid apps • Real devices & Simulators • Available also on the grid (e.g., SauceLabs) And…. • Even works with Robots
  • 14. A little deeper: Android
  • 16. Show me the code! Code for available in: https://github.com/danielputerman/appium-overview
  • 17. Finding elements Appium translates webdriver “find” commands to the relevant automation API provided by each platform: Four “find” methods available • “name”: The text on the element / accessibility identifier • “tag_name”: the type of an element, e.g., “button”, “textfield” etc. • Mapping: https://github.com/appium/appium/blob/master/lib/devices/ios/uiauto/lib/mechanic.js #L29 • “Xpath”: Using the element hierarchy. • “ID”: Available for Android when running with “selendroid” as device.
  • 18. Finding elements by name driver.find_element(:name, “New note”) Searches label text / accessibility fields for each platform (“contentDescription” on android, “name” on iOS)
  • 19. Finding elements by tag name driver.find_element(:tag_name, “textfield”) Searches for an element of the specified type.
  • 20. Finding elements by xpath @driver.find_element(:xpath, '//text[contains(@value, “another”)]') @driver.find_element(:xpath, '//text[last()]')
  • 21. There are limitations, of course! • Instruments is a singleton • No parallel testing of iOS apps on the same OSX instance. • Limited VM scalability. • Appium is a relatively new product and is in the process of maturing. • Documentation is not bad, but can be improved quite a bit. • Error messages (especially for iOS) can be sometimes hard to figure out.
  • 22. The future • Mobile Json Wire Protocol (part of Selenium 3) https://code.google.com/p/selenium/source/ browse/spec-draft.md?repo=mobile • Joint effort of Appium, Facebook, Ebay and Mozilla • Appium would implement the protocol + backword compatibility. • Additional platforms • Appium Doctor • Advanced gestures
  • 23. Tips I: Appium setup • Pay attention to the requirements! • Node version (>= 0.8) • Android API >= 17 (i.e. 4.2.2 and above) • Windows is still considered beta, though seems to be working fine  • iOS • Mac OS X 10.7 or higher, 10.8.4 recommended • XCode >= 4.6.3 • Apple Developer Tools (iPhone simulator SDK, command line tools) • For Mac, make sure you use the XCode version matching the iOS version you wish to test • https://github.com/appium/appium/blob/master/docs/running-on-osx.md#testing-against-multiple-ios-sdks
  • 24. Tips II: running Appium • Desired capabilities, Desired capabilities, Desired capabilities! • On linux/Mac use ‘sudo –E’ (or ‘sudo –sE’) to have the environment variables available when Appium is run. • Notice the IP you listen to when starting Appium (the ‘-a’ parameter): • 127.0.0.1 will only listen to itself and localhost. • 0.0.0.0 will listen to itself, localhost, 127.0.0.1 and the actual computer IP(s). • Parallel testing? • Run multiple Appium servers, each listening to a different port, and to a specific device using the ‘–U’ option. • Use ‘–full-reset’ when running on Android, so tests will start from a clean environment.
  • 25. FAQ Q: Can I automate webview applications? A: Definitely. 1. 2. 3. 4. If you’re using Android, the “device” in the desired capabilities should be set to “selendroid”. Switch to webview: driver.switch_to_window(“WEBVIEW”) Automate as standard web. If required: driver.switch_to_window(“NATIVE”) Q: What about an application which activates another application? (FB, maps etc.) A: Depends • For Android, not a problem. • For iOS, switching to a different application loses the context in which the automation run. You need to create a new session when coming back from the external application. https://groups.google.com/forum/#!topic/appium-discuss/38wLkiS_7L0
  • 26. FAQ Cont. Q: Can I automate an application already installed on a device (without having the app file on my computer)? A: Yes and no  • Android: You can, either for simulator or for real device (just set ‘app-package’ and ‘app-activity’). • iOS: No problem if you use a simulator (use ‘bundleId’ as the value to the ‘app’ parameter), but for a real device you must have the app file on your computer.
  • 27. UI Validation DEMO Code for available in: https://github.com/danielputerman/appium-overview
  • 28. Additional resources • Appium website • Home: http://appium.io/ • Documentation: http://appium.io/getting-started.html • Appium forum on google. If you have a question or a problem, this is the place to go. • https://groups.google.com/forum/#!forum/appium-discuss • Code for the demos • https://github.com/danielputerman/appium-overview