on boarding appium open source and perfecto mobile
TRANSCRIPT
On boarding Appium Open Source and Perfecto Mobile
Asaf Saar, Head of Product Owners
Perfecto Mobile
© 2016, Perfecto Mobile Ltd. All Rights Reserved. 01-07-16 1
Agenda
• Intro
• Appium Overview• Why Appium
• Appium Inspector
• Appium Challenges
• Perfecto Overview
• Perfecto Mobile and Appium
01-07-16 2© 2016, Perfecto Mobile Ltd. All Rights Reserved.
About me
• Asaf Saar, Head of Product Owners at Perfecto Mobile.
• 20 years of professional experience in software engineering
• Prior to Perfecto: Founder of TenKod, SAP APO of Software Engineering, and more…
• Agile Software Engioneering trainer, coach and mentor
• Married to Merav and father of three
• Astronomy and fast cars are my hobbies
http://il.linkedin.com/in/asafsaar
01-07-16 3© 2016, Perfecto Mobile Ltd. All Rights Reserved.
Appium
Appium is an open source test
automation framework for use with
native, hybrid and web mobile apps.
http://appium.io/slate/en/master
01-07-16 4© 2016, Perfecto Mobile Ltd. All Rights Reserved.
Why Appium?
• Runs on iOS, Android and most recently on Windows 10 as well…
• Automates native, web and hybrid apps
• Instrumentaiton free
• Uses standard automtion libraries of iOS, Android and Windows
• Support for any WebDriver compatible language
• Use with your favorite testing, build and CI frameworks
• Drives simulators, emulators and real devices
• Open Source, joins the jQuery Foundation...
01-07-16 5© 2016, Perfecto Mobile Ltd. All Rights Reserved.
Appium major competition
• As an Open Source (or free) Mobile Testing Framework, Appium’s main rivals are:
• KIF
• UIAutomator
• XCTest
• Espresso
• Robotium
• Selendroid
• Calaba.sh
Still, Appium’s market domination is the largest in comparison.By far…
01-07-16 6© 2016, Perfecto Mobile Ltd. All Rights Reserved.
How it works?
• Driven by a Server, available for Win, Linux and Mac• Server can run using the Appium app or Node.js
• Provides an API based on Selenium's WebDriver JSON protocol.
• Drives Apple's UIAutomation library for iOS support
• Drives Android’s UiAutomator framework for newer platforms and Selendroid for older Android platforms.
• Drives Windows 10 WinApp and Win32 apps via WinAppDriver (the only none open source component here)
• And there’s the Appium Inspector…
01-07-16 7© 2016, Perfecto Mobile Ltd. All Rights Reserved.
Appium Inspector
• Built into the Appium App
• Provides iOS and Android object inspection (No WinApp support)
• Object tree lockup
• Recording capabilities
• Native only…
01-07-16 8© 2016, Perfecto Mobile Ltd. All Rights Reserved.
Appium Inspector
01-07-16 9© 2016, Perfecto Mobile Ltd. All Rights Reserved.
Appium Challenges, general
• Setup is a mess, long prerequisites and manual steps
• Development (OOP) knowledge is a must
• Relatively slow on real devices
• Inspector• Native apps only
(Web via Chrome Developer Tools / Remote Debugging)
• Generated code is incomplete and not robust enough
• No Linux client
• No reporting
• No Visual Analysis capabilities
01-07-16 10© 2016, Perfecto Mobile Ltd. All Rights Reserved.
Appium Challenges, iOS specific
• Mac only
• App context only• No app switch
• No system level control
• Can’t automation notifications
• Can’t automate iOS keyboard (only send keys)
• No parallel execution of iOS (iOS Instruments limitation)
• Real device setup is challenging
01-07-16 11© 2016, Perfecto Mobile Ltd. All Rights Reserved.
Dev Environments
Perfecto, Cloud Based Quality Platform for the Digital Era
12
Wind Tunnel Layer
Any IDE
Dev ToolsFunctional
TestingPerformance
TestingProduction
Insight
Any test framework
Any CI server
Any test tool
One Lab for all Digital Platforms
Code Test Production Support
Reporting & Analytics
Open and Integrated
Open &
Integrated
Xcode
Selenium
Perfecto Mobile + Appium
01-07-16 14© 2016, Perfecto Mobile Ltd. All Rights Reserved.
Migrating Appium test to run on Perfecto Cloud
01-07-16 15© 2016, Perfecto Mobile Ltd. All Rights Reserved.
https://github.com/PerfectoCode
DesiredCapabilities capabilities = new DesiredCapabilities();capabilities.setCapability("user", “MY_USER”);capabilities.setCapability("password", “MY_PASSWORD”);capabilities.setCapability("deviceName", “Samsung Galaxy S6”);capabilities.setCapability("platformName", “Android”);
if(os.equals("iOS")) {driver = new IOSDriver(new URL(MY_CLOUD_URL), capabilities);
}Else {
driver = new AndroidDriver(new URL(MY_CLOUD_URL), capabilities);}
IDE Integration
01-07-16 16© 2016, Perfecto Mobile Ltd. All Rights Reserved.
Execution Reporting
01-07-16 17© 2016, Perfecto Mobile Ltd. All Rights Reserved.
Thank you!
01-07-16 18© 2016, Perfecto Mobile Ltd. All Rights Reserved.