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

Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
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
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfjimielynbastida
 

Recently uploaded (20)

Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
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
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdf
 

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