SlideShare uma empresa Scribd logo
1 de 44
1Confidential and propriety Galil Software, Ltd. 20124-Jan-16
Automation for Mobile Apps - Appium solution
Author:
Nael Abd Aljawad – QA Automation Technical Leader
2Confidential and propriety Galil Software, Ltd. 201225.12.11
Mobile Automation Tools Comparison
3Confidential and propriety Galil Software, Ltd. 201225.12.11
 Appium drives iOS and Android apps using the WebDriver protocol.
 Appium is an open source test automation framework for use with
native, hybrid and mobile web apps.
Appium Solution
4
What is it?
 Native App – A native app is an app which is built for a specific
platform using specific technologies like Xcode for iOS and Java for
Android.
 Hybrid App – A hybrid app is an app which uses native as well as
web technologies to bring best of both worlds.
 Html5 App – Html5 app is not installed on a phone. It runs on a
browser and built using web technologies such that it is fully
optimized for screen it runs on.
5
Features Comparison
Feature Native Hybrid HTML5
Performance Fast Controlled Slow
Multi-touch/pinch Yes Yes No
Device Access All Almost all Very few
Secure storage Yes Yes Shared/No
Connectivity Online/Offline Online/Offline Mostly Online
Rollout Slow/painful Slow/painful Fast
Security High Low Low
Best for Games/low content Medium dynamic content High dynamic content
Tools Xcode, Eclipse Phonegap, Worklight Any web based
Distribution Downloaded to device
from AppStore
Hosted on a Web server and
accessed on a Web Browser
Downloaded to device from
AppStore
Integration Supports integration with
device features such as
camera and address book
Doesn’t support integration
with device components
Supports integration with
device features such as
camera and address book
Notifications Yes No Yes
6
Market overview
 Facebook moved away from HTML5 apps
 Twitter uses hybrid app approach
 A lot of ecommerce sites have HTML5 based mobile websites
 LinkedIn also recently moved to native app
7
HTML5 vs. Hybrid vs. Native
8
Appium Philosophy
 Appium was designed to meet mobile automation needs according
to a philosophy outlined by the following four tenets:
1. You shouldn't have to recompile your app or modify it in any way in
order to automate it. you're testing the same app you're shipping
2. You shouldn't be locked into a specific language or framework to write
and run your tests
3. A mobile automation framework shouldn't reinvent the wheel when it
comes to automation APIs. extended the JSON protocol with extra
API methods useful for mobile automation
4. A mobile automation framework should be open source, in spirit and
practice as well as in name
9Confidential and propriety Galil Software, Ltd. 201225.12.11
Client/Server Architecture
 Receives connections from a client
 Listens for commands
 Executes the commands on a mobile device
 Responds with an HTTP response representing the result of the
command execution
10
Selenium
WebDriver
Script
(C#,Java,Perl,
Python,PHP)
Server written
in node.js
IDE
JSON WIRE
Protocol
via http
11Confidential and propriety Galil Software, Ltd. 201225.12.11
Appium Architecture
12Confidential and propriety Galil Software, Ltd. 201225.12.11
Session
Session Object
 Clients initiate a session with a server in ways specific to each
library
 All libraries end up sending a POST /session request to the server,
with a JSON object called the 'desired capabilities' object
 the server will start up the automation session and respond with a
session ID which is used for sending further commands
13Confidential and propriety Galil Software, Ltd. 201225.12.11
JSON
 Desired capabilities tell the Appium server what kind of automation
session we're interested in starting up
 There are various capabilities which can modify the behavior of the
server during automation (e.g. tell Appium that we want an iOS session, rather than an Android one)
Desired Capabilities
14Confidential and propriety Galil Software, Ltd. 201225.12.11
Appium
Server
Appium Server
 Appium is a server written in Node.js.
 It can be built and installed from source or installed directly from
NPM
15Confidential and propriety Galil Software, Ltd. 201225.12.11
Appium Clients
 There are client libraries which support Appium's extensions to the
WebDriver protocol. When using Appium, you want to use these
client libraries instead of your regular WebDriver client.
16
Language Clients
Github Repo and Installation InstructionsLanguage/Framework
https://github.com/appium/ruby_libRuby
https://github.com/appium/python-clientPython
https://github.com/appium/java-clientJava
https://github.com/admc/wdJavaScript (Node.js)
https://github.com/appium/selenium-objective-cObjective C
https://github.com/appium/php-clientPHP
https://github.com/appium/appium-dotnet-driverC# (.NET)
http://github.com/appium/perl-clientPerl
https://github.com/jollychang/robotframework-
appiumlibrary
RobotFramework
17Confidential and propriety Galil Software, Ltd. 201225.12.11
Mobile Star Wars
18Confidential and propriety Galil Software, Ltd. 201225.12.11
Appium GUI
19
Inspectors
 Android UIautomatorviewer / IOS UIautomation - A GUI tool to scan
and analyze the UI components of an Android/IOS application.
 Web & Hybrid apps: Chrome://inspect/#devices
20
IOS
 Versions: 6.0, 6.1, 7.0, 7.1, 8.0, and 8.1
 Devices: iPhone Simulator, iPad Simulator, and real iPhones and
iPads
 Native app support: Yes
 Mobile web support: Yes, via automation of mobile Safari.
 Hybrid support: Yes.
 Support for automating multiple apps in one session: No
 Support for automating multiple devices simultaneously: No
21
Android
 Versions: 2.3 and up
 Devices: Android emulators and real Android devices
 Native app support: Yes
 Mobile web support: Yes
 Hybrid support: Yes
 Support for automating multiple apps in one session: Yes
 Support for automating multiple devices simultaneously: Yes
22
TouchActions
23
MultiTouchActions
24
Hybrid Apps Views Switching
25
Requirements - Java
 JAVA IDE (Eclipse)
 Java JDK
 Maven Plugin for Eclipse
 Selenium WebDriver Dependencies/Appium Java-Client
Dependency (Maven)
 Android SDK
 TestNG/Junit
 Emulator/ Real Device
 Appium Server
 Node.js (If running appium from source)
 Mac OS X 10.7 or higher
 XCode >= 4.6.3
 Apple Developer Tools (iPhone simulator SDK, command line tools)
 Homebrew
26
Java JDK
 Download java JDK :
www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
to add new variable and edit the path.
right click on computer - > properties -> Advanced system settings
-> Environment variables
Add new variable :
New : variable name : JAVA_HOME
variable value : C:Program FilesJavajdk1.7.0_79
Edit Path : ;C:Program FilesJavajdk1.7.0_79bin
By Makram
27
Download Eclipse ( with TestNG & Maven)
 www.eclipse.org
 Add TestNG plugin :
Help -> install new software -> Add ->
Name : TestNG
Location : http://beust.com/eclipse
 Add Maven :
Help -> install new software -> Add ->
Name : Maven
Location : http://download.eclipse.org/technology/m2e/releases
By Makram
28
ADT Plugin
 ADT Plugin ( Android Developer Tools) :
Help -> install new software -> Add ->
Name : ADT Plugin
Location : https://dl-ssl.google.com/android/eclipse/
By Makram
29
Android SDK
Android SDK ( Software Developer Kit) :
developer.android.com/sdk/index.html
To add the location of the android sdk folder to eclipse :
Window -> Preferences -> Android
SDK Location : the path of the android-sdks
By Makram
30
ANDROID_HOME
To add new variable and edit the path.
right click on computer - > properties -> Advanced system settings
-> Environment variables
Add new variable :
New : variable name : ANDROID_HOME
variable value : pathandroid -sdks
Edit Path : ; pathandroid –sdksplatform-tools
Edit Path : ; pathandroid –sdkstools
By Makram
31
Appium
 Install Appium server :
http://appium.io/downloads.html
 Download Appium and Selenium jars from Maven repositories
Selenium : http://www.seleniumhq.org/download/
Java-client : https://search.maven.org/#search%7Cga%7C1%7Cjava-
client
By Makram
32
Test Script Development
 Create a maven project in Eclipse
 Add dependency
<dependency>
<groupId> io.appium </groupId>
<artifactId> java-client </artifactId>
<version> 1.1.0 </version>
</dependency>
33
Test Script Development
public void setUp() throws Exception
{
File classpathRoot = new File(System.getProperty("user.dir"));
File appDir = new File(classpathRoot, "../../../apps/");
File app = new File(appDir, "App_Name.apk");
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("deviceName","Android");
capabilities.setCapability("browserName", "");
capabilities.setCapability("platformVersion", "4.4");
capabilities.setCapability("app", app.getAbsolutePath());
capabilities.setCapability("appPackage", “package_name ");
capabilities.setCapability("appActivity", ".activity_name");
}
AndroidDriver driver=new AndroidDriver(new
URL("http://127.0.0.1:4723/wd/hub"), capabilities);
AppiumDriver driver = new AppiumDriver(new
URL("http://127.0.0.1:4723/wd/hub"), capabilities);
34
SauceLabs
 Automated testing in the cloud for CI.
 Provides the world’s largest cross-browser grid for executing
Selenium & Appium WebDriver tests
35
SauceLabs – Username & Access Key
36
SauceLabs - Setup
public class AppiumDriverTest {
private AppiumDriver driver;
@Parameters({"username", "key", "os", "browser", "browserVersion"})
@BeforeMethod
public void setUp(@Optional("nael_sl") String username,
@Optional("e8ea754d-c8a0-488f-993c-15f583ab2179") String key,
@Optional("mac") String os,
@Optional("iphone") String browser,
@Optional("5.0") String browserVersion,
Method method) throws Exception {
// Choose the browser, version, and platform to test
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setBrowserName(browser);
capabilities.setCapability("version", browserVersion);
capabilities.setCapability("platform", Platform.valueOf(os));
capabilities.setCapability("name", method.getName());
// Create the connection to Sauce Labs to run the tests
this.driver = new RemoteWebDriver(new URL("http://" + username + ":" + key +
"@ondemand.saucelabs.com:80/wd/hub"),capabilities);
}
@Test
public void webDriver() throws Exception {
// Make the browser get the page and check its title
driver.get("http://www.amazon.com/");
assertEquals("Amazon.com: Online Shopping for Electronics, Apparel, Computers, Books, DVDs & more",
driver.getTitle());
}
}
37
AUTOMATED TEST CONFIGURATOR
38
Android is the Winner
39Confidential and propriety Galil Software, Ltd. 201225.12.11
Drivers Relationship
40Confidential and propriety Galil Software, Ltd. 201225.12.11
Web driver FW Design
41Confidential and propriety Galil Software, Ltd. 201225.12.11
Appium Design
42Confidential and propriety Galil Software, Ltd. 201225.12.11
Current FW
43Confidential and propriety Galil Software, Ltd. 201225.12.11
Report
44Confidential and propriety Galil Software, Ltd. 201225.12.11
Thank You 
Nael Abd Aljawad – QA Automation Technical Leader

Mais conteúdo relacionado

Mais procurados

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.
 
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)danielputerman
 
Appium tutorial| Appium Training
Appium tutorial| Appium Training Appium tutorial| Appium Training
Appium tutorial| Appium Training QA Masters
 
Mobile automation – should I use robotium or calabash or appium?
Mobile automation – should I use robotium or calabash or appium?Mobile automation – should I use robotium or calabash or appium?
Mobile automation – should I use robotium or calabash or appium?Zado Technologies
 
Mobile Test Automation - Appium
Mobile Test Automation - AppiumMobile Test Automation - Appium
Mobile Test Automation - AppiumMaria Machlowska
 
Appium meet up noida
Appium meet up noidaAppium meet up noida
Appium meet up noidaAmit Rawat
 
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with AppiumSrijan Technologies
 
Mobile automation testing with selenium and appium
Mobile automation testing with selenium and appiumMobile automation testing with selenium and appium
Mobile automation testing with selenium and appiumBugRaptors
 
Appium - test automation for mobile apps
Appium - test automation for mobile appsAppium - test automation for mobile apps
Appium - test automation for mobile appsAleksejs Trescalins
 
Appium an introduction
Appium   an introductionAppium   an introduction
Appium an introductionVivek Shringi
 
Introduction To Mobile-Automation
Introduction To Mobile-AutomationIntroduction To Mobile-Automation
Introduction To Mobile-AutomationMindfire Solutions
 
Wheat - Mobile functional test automation
Wheat - Mobile functional test automationWheat - Mobile functional test automation
Wheat - Mobile functional test automationSunny Tambi
 
Mobile Test Automation
Mobile Test AutomationMobile Test Automation
Mobile Test AutomationAndreas Jakl
 
Parallel testing with appium
Parallel testing with appiumParallel testing with appium
Parallel testing with appiummoizjv
 
Advanced Appium Tips & Tricks with Jonathan Lipps
Advanced Appium Tips & Tricks with Jonathan LippsAdvanced Appium Tips & Tricks with Jonathan Lipps
Advanced Appium Tips & Tricks with Jonathan LippsPerfecto by Perforce
 
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 SeleniumLizzy Guido (she/her)
 

Mais procurados (20)

Appium Interview Questions and Answers | Edureka
Appium Interview Questions and Answers | EdurekaAppium Interview Questions and Answers | Edureka
Appium Interview Questions and Answers | Edureka
 
Automation With Appium
Automation With AppiumAutomation With Appium
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)
 
Appium tutorial| Appium Training
Appium tutorial| Appium Training Appium tutorial| Appium Training
Appium tutorial| Appium Training
 
Mobile automation – should I use robotium or calabash or appium?
Mobile automation – should I use robotium or calabash or appium?Mobile automation – should I use robotium or calabash or appium?
Mobile automation – should I use robotium or calabash or appium?
 
Mobile Test Automation - Appium
Mobile Test Automation - AppiumMobile Test Automation - Appium
Mobile Test Automation - Appium
 
Appium meet up noida
Appium meet up noidaAppium meet up noida
Appium meet up noida
 
[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
AppiumAppium
Appium
 
Mobile automation testing with selenium and appium
Mobile automation testing with selenium and appiumMobile automation testing with selenium and appium
Mobile automation testing with selenium and appium
 
Appium ppt
Appium pptAppium ppt
Appium ppt
 
Appium - test automation for mobile apps
Appium - test automation for mobile appsAppium - test automation for mobile apps
Appium - test automation for mobile apps
 
Appium an introduction
Appium   an introductionAppium   an introduction
Appium an introduction
 
Introduction To Mobile-Automation
Introduction To Mobile-AutomationIntroduction To Mobile-Automation
Introduction To Mobile-Automation
 
Wheat - Mobile functional test automation
Wheat - Mobile functional test automationWheat - Mobile functional test automation
Wheat - Mobile functional test automation
 
Mobile Test Automation
Mobile Test AutomationMobile Test Automation
Mobile Test Automation
 
[Binh nguyen] Mobile Application Automation Testing iOS and Android
[Binh nguyen] Mobile Application Automation Testing iOS and Android [Binh nguyen] Mobile Application Automation Testing iOS and Android
[Binh nguyen] Mobile Application Automation Testing iOS and Android
 
Parallel testing with appium
Parallel testing with appiumParallel testing with appium
Parallel testing with appium
 
Advanced Appium Tips & Tricks with Jonathan Lipps
Advanced Appium Tips & Tricks with Jonathan LippsAdvanced Appium Tips & Tricks with Jonathan Lipps
Advanced Appium Tips & Tricks with Jonathan Lipps
 
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
 

Destaque

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: Mobile Automation Made Awesome
Appium: Mobile Automation Made AwesomeAppium: Mobile Automation Made Awesome
Appium: Mobile Automation Made AwesomeNetcetera
 
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
 
Robot framework
Robot frameworkRobot framework
Robot frameworkboriau
 
Appium Mobile Test Automation like WebDriver
Appium Mobile Test Automation like WebDriverAppium Mobile Test Automation like WebDriver
Appium Mobile Test Automation like WebDriverAndrii Dzynia
 
Acceptance testing plone sites and add ons with robot framework and selenium
Acceptance testing plone sites and add ons with robot framework and seleniumAcceptance testing plone sites and add ons with robot framework and selenium
Acceptance testing plone sites and add ons with robot framework and seleniumAsko Soukka
 

Destaque (8)

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
 
Appium: Mobile Automation Made Awesome
Appium: Mobile Automation Made AwesomeAppium: Mobile Automation Made Awesome
Appium: Mobile Automation Made Awesome
 
Appium solution
Appium solutionAppium solution
Appium solution
 
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
 
Robot framework
Robot frameworkRobot framework
Robot framework
 
Appium Mobile Test Automation like WebDriver
Appium Mobile Test Automation like WebDriverAppium Mobile Test Automation like WebDriver
Appium Mobile Test Automation like WebDriver
 
Acceptance testing plone sites and add ons with robot framework and selenium
Acceptance testing plone sites and add ons with robot framework and seleniumAcceptance testing plone sites and add ons with robot framework and selenium
Acceptance testing plone sites and add ons with robot framework and selenium
 
Robot framework and selenium2 library
Robot framework and selenium2 libraryRobot framework and selenium2 library
Robot framework and selenium2 library
 

Semelhante a Appium solution artizone

Appium presentation matific
Appium presentation   matificAppium presentation   matific
Appium presentation matificNael Abd Eljawad
 
Quickly Build a Native Mobile App for Your Community Using Salesforce Mobile SDK
Quickly Build a Native Mobile App for Your Community Using Salesforce Mobile SDKQuickly Build a Native Mobile App for Your Community Using Salesforce Mobile SDK
Quickly Build a Native Mobile App for Your Community Using Salesforce Mobile SDKSalesforce Developers
 
Building Cross-Platform JavaScript Apps using Cordova
Building Cross-Platform JavaScript Apps using CordovaBuilding Cross-Platform JavaScript Apps using Cordova
Building Cross-Platform JavaScript Apps using CordovaNoam Kfir
 
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
 
MDC2011 Android_ Webdriver Automation Test
MDC2011 Android_ Webdriver Automation TestMDC2011 Android_ Webdriver Automation Test
MDC2011 Android_ Webdriver Automation TestMasud Parvez
 
Quickly Build a Native Mobile App for your Community using Salesforce Mobile SDK
Quickly Build a Native Mobile App for your Community using Salesforce Mobile SDKQuickly Build a Native Mobile App for your Community using Salesforce Mobile SDK
Quickly Build a Native Mobile App for your Community using Salesforce Mobile SDKMichael Welburn
 
Rhomobile 5.5 Release Notes
Rhomobile 5.5 Release NotesRhomobile 5.5 Release Notes
Rhomobile 5.5 Release NotesKonstantin Rybas
 
The ultimate guide to mobile app testing with appium
The ultimate guide to mobile app testing with appiumThe ultimate guide to mobile app testing with appium
The ultimate guide to mobile app testing with appiumheadspin2
 
Android presentation
Android presentationAndroid presentation
Android presentationImam Raza
 
Hybrid Mobile Apps - Meetup
Hybrid Mobile Apps - MeetupHybrid Mobile Apps - Meetup
Hybrid Mobile Apps - MeetupSanjay Patel
 
Android Automation Testing with Selendroid
Android Automation Testing with SelendroidAndroid Automation Testing with Selendroid
Android Automation Testing with SelendroidVikas Thange
 
Тестирование мобильных приложений используя облачные сервисы. TestDroid, Test...
Тестирование мобильных приложений используя облачные сервисы. TestDroid, Test...Тестирование мобильных приложений используя облачные сервисы. TestDroid, Test...
Тестирование мобильных приложений используя облачные сервисы. TestDroid, Test...COMAQA.BY
 

Semelhante a Appium solution artizone (20)

Appium
AppiumAppium
Appium
 
Appium presentation matific
Appium presentation   matificAppium presentation   matific
Appium presentation matific
 
Appium
AppiumAppium
Appium
 
Quickly Build a Native Mobile App for Your Community Using Salesforce Mobile SDK
Quickly Build a Native Mobile App for Your Community Using Salesforce Mobile SDKQuickly Build a Native Mobile App for Your Community Using Salesforce Mobile SDK
Quickly Build a Native Mobile App for Your Community Using Salesforce Mobile SDK
 
Next level of Appium
Next level of AppiumNext level of Appium
Next level of Appium
 
Building Cross-Platform JavaScript Apps using Cordova
Building Cross-Platform JavaScript Apps using CordovaBuilding Cross-Platform JavaScript Apps using Cordova
Building Cross-Platform JavaScript Apps using Cordova
 
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
 
Android Development
Android DevelopmentAndroid Development
Android Development
 
Appium.pptx
Appium.pptxAppium.pptx
Appium.pptx
 
MDC2011 Android_ Webdriver Automation Test
MDC2011 Android_ Webdriver Automation TestMDC2011 Android_ Webdriver Automation Test
MDC2011 Android_ Webdriver Automation Test
 
Quickly Build a Native Mobile App for your Community using Salesforce Mobile SDK
Quickly Build a Native Mobile App for your Community using Salesforce Mobile SDKQuickly Build a Native Mobile App for your Community using Salesforce Mobile SDK
Quickly Build a Native Mobile App for your Community using Salesforce Mobile SDK
 
Rhomobile 5.5 Release Notes
Rhomobile 5.5 Release NotesRhomobile 5.5 Release Notes
Rhomobile 5.5 Release Notes
 
The ultimate guide to mobile app testing with appium
The ultimate guide to mobile app testing with appiumThe ultimate guide to mobile app testing with appium
The ultimate guide to mobile app testing with appium
 
Android presentation
Android presentationAndroid presentation
Android presentation
 
Oracle mcs overview 1029
Oracle mcs overview 1029Oracle mcs overview 1029
Oracle mcs overview 1029
 
Hybrid Mobile Apps - Meetup
Hybrid Mobile Apps - MeetupHybrid Mobile Apps - Meetup
Hybrid Mobile Apps - Meetup
 
Codename one
Codename oneCodename one
Codename one
 
Android Automation Testing with Selendroid
Android Automation Testing with SelendroidAndroid Automation Testing with Selendroid
Android Automation Testing with Selendroid
 
Automation using Appium
Automation using AppiumAutomation using Appium
Automation using Appium
 
Тестирование мобильных приложений используя облачные сервисы. TestDroid, Test...
Тестирование мобильных приложений используя облачные сервисы. TestDroid, Test...Тестирование мобильных приложений используя облачные сервисы. TestDroid, Test...
Тестирование мобильных приложений используя облачные сервисы. TestDroid, Test...
 

Último

call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceanilsa9823
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 

Último (20)

call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 

Appium solution artizone

  • 1. 1Confidential and propriety Galil Software, Ltd. 20124-Jan-16 Automation for Mobile Apps - Appium solution Author: Nael Abd Aljawad – QA Automation Technical Leader
  • 2. 2Confidential and propriety Galil Software, Ltd. 201225.12.11 Mobile Automation Tools Comparison
  • 3. 3Confidential and propriety Galil Software, Ltd. 201225.12.11  Appium drives iOS and Android apps using the WebDriver protocol.  Appium is an open source test automation framework for use with native, hybrid and mobile web apps. Appium Solution
  • 4. 4 What is it?  Native App – A native app is an app which is built for a specific platform using specific technologies like Xcode for iOS and Java for Android.  Hybrid App – A hybrid app is an app which uses native as well as web technologies to bring best of both worlds.  Html5 App – Html5 app is not installed on a phone. It runs on a browser and built using web technologies such that it is fully optimized for screen it runs on.
  • 5. 5 Features Comparison Feature Native Hybrid HTML5 Performance Fast Controlled Slow Multi-touch/pinch Yes Yes No Device Access All Almost all Very few Secure storage Yes Yes Shared/No Connectivity Online/Offline Online/Offline Mostly Online Rollout Slow/painful Slow/painful Fast Security High Low Low Best for Games/low content Medium dynamic content High dynamic content Tools Xcode, Eclipse Phonegap, Worklight Any web based Distribution Downloaded to device from AppStore Hosted on a Web server and accessed on a Web Browser Downloaded to device from AppStore Integration Supports integration with device features such as camera and address book Doesn’t support integration with device components Supports integration with device features such as camera and address book Notifications Yes No Yes
  • 6. 6 Market overview  Facebook moved away from HTML5 apps  Twitter uses hybrid app approach  A lot of ecommerce sites have HTML5 based mobile websites  LinkedIn also recently moved to native app
  • 7. 7 HTML5 vs. Hybrid vs. Native
  • 8. 8 Appium Philosophy  Appium was designed to meet mobile automation needs according to a philosophy outlined by the following four tenets: 1. You shouldn't have to recompile your app or modify it in any way in order to automate it. you're testing the same app you're shipping 2. You shouldn't be locked into a specific language or framework to write and run your tests 3. A mobile automation framework shouldn't reinvent the wheel when it comes to automation APIs. extended the JSON protocol with extra API methods useful for mobile automation 4. A mobile automation framework should be open source, in spirit and practice as well as in name
  • 9. 9Confidential and propriety Galil Software, Ltd. 201225.12.11 Client/Server Architecture  Receives connections from a client  Listens for commands  Executes the commands on a mobile device  Responds with an HTTP response representing the result of the command execution
  • 11. 11Confidential and propriety Galil Software, Ltd. 201225.12.11 Appium Architecture
  • 12. 12Confidential and propriety Galil Software, Ltd. 201225.12.11 Session Session Object  Clients initiate a session with a server in ways specific to each library  All libraries end up sending a POST /session request to the server, with a JSON object called the 'desired capabilities' object  the server will start up the automation session and respond with a session ID which is used for sending further commands
  • 13. 13Confidential and propriety Galil Software, Ltd. 201225.12.11 JSON  Desired capabilities tell the Appium server what kind of automation session we're interested in starting up  There are various capabilities which can modify the behavior of the server during automation (e.g. tell Appium that we want an iOS session, rather than an Android one) Desired Capabilities
  • 14. 14Confidential and propriety Galil Software, Ltd. 201225.12.11 Appium Server Appium Server  Appium is a server written in Node.js.  It can be built and installed from source or installed directly from NPM
  • 15. 15Confidential and propriety Galil Software, Ltd. 201225.12.11 Appium Clients  There are client libraries which support Appium's extensions to the WebDriver protocol. When using Appium, you want to use these client libraries instead of your regular WebDriver client.
  • 16. 16 Language Clients Github Repo and Installation InstructionsLanguage/Framework https://github.com/appium/ruby_libRuby https://github.com/appium/python-clientPython https://github.com/appium/java-clientJava https://github.com/admc/wdJavaScript (Node.js) https://github.com/appium/selenium-objective-cObjective C https://github.com/appium/php-clientPHP https://github.com/appium/appium-dotnet-driverC# (.NET) http://github.com/appium/perl-clientPerl https://github.com/jollychang/robotframework- appiumlibrary RobotFramework
  • 17. 17Confidential and propriety Galil Software, Ltd. 201225.12.11 Mobile Star Wars
  • 18. 18Confidential and propriety Galil Software, Ltd. 201225.12.11 Appium GUI
  • 19. 19 Inspectors  Android UIautomatorviewer / IOS UIautomation - A GUI tool to scan and analyze the UI components of an Android/IOS application.  Web & Hybrid apps: Chrome://inspect/#devices
  • 20. 20 IOS  Versions: 6.0, 6.1, 7.0, 7.1, 8.0, and 8.1  Devices: iPhone Simulator, iPad Simulator, and real iPhones and iPads  Native app support: Yes  Mobile web support: Yes, via automation of mobile Safari.  Hybrid support: Yes.  Support for automating multiple apps in one session: No  Support for automating multiple devices simultaneously: No
  • 21. 21 Android  Versions: 2.3 and up  Devices: Android emulators and real Android devices  Native app support: Yes  Mobile web support: Yes  Hybrid support: Yes  Support for automating multiple apps in one session: Yes  Support for automating multiple devices simultaneously: Yes
  • 24. 24 Hybrid Apps Views Switching
  • 25. 25 Requirements - Java  JAVA IDE (Eclipse)  Java JDK  Maven Plugin for Eclipse  Selenium WebDriver Dependencies/Appium Java-Client Dependency (Maven)  Android SDK  TestNG/Junit  Emulator/ Real Device  Appium Server  Node.js (If running appium from source)  Mac OS X 10.7 or higher  XCode >= 4.6.3  Apple Developer Tools (iPhone simulator SDK, command line tools)  Homebrew
  • 26. 26 Java JDK  Download java JDK : www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html to add new variable and edit the path. right click on computer - > properties -> Advanced system settings -> Environment variables Add new variable : New : variable name : JAVA_HOME variable value : C:Program FilesJavajdk1.7.0_79 Edit Path : ;C:Program FilesJavajdk1.7.0_79bin By Makram
  • 27. 27 Download Eclipse ( with TestNG & Maven)  www.eclipse.org  Add TestNG plugin : Help -> install new software -> Add -> Name : TestNG Location : http://beust.com/eclipse  Add Maven : Help -> install new software -> Add -> Name : Maven Location : http://download.eclipse.org/technology/m2e/releases By Makram
  • 28. 28 ADT Plugin  ADT Plugin ( Android Developer Tools) : Help -> install new software -> Add -> Name : ADT Plugin Location : https://dl-ssl.google.com/android/eclipse/ By Makram
  • 29. 29 Android SDK Android SDK ( Software Developer Kit) : developer.android.com/sdk/index.html To add the location of the android sdk folder to eclipse : Window -> Preferences -> Android SDK Location : the path of the android-sdks By Makram
  • 30. 30 ANDROID_HOME To add new variable and edit the path. right click on computer - > properties -> Advanced system settings -> Environment variables Add new variable : New : variable name : ANDROID_HOME variable value : pathandroid -sdks Edit Path : ; pathandroid –sdksplatform-tools Edit Path : ; pathandroid –sdkstools By Makram
  • 31. 31 Appium  Install Appium server : http://appium.io/downloads.html  Download Appium and Selenium jars from Maven repositories Selenium : http://www.seleniumhq.org/download/ Java-client : https://search.maven.org/#search%7Cga%7C1%7Cjava- client By Makram
  • 32. 32 Test Script Development  Create a maven project in Eclipse  Add dependency <dependency> <groupId> io.appium </groupId> <artifactId> java-client </artifactId> <version> 1.1.0 </version> </dependency>
  • 33. 33 Test Script Development public void setUp() throws Exception { File classpathRoot = new File(System.getProperty("user.dir")); File appDir = new File(classpathRoot, "../../../apps/"); File app = new File(appDir, "App_Name.apk"); DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability("deviceName","Android"); capabilities.setCapability("browserName", ""); capabilities.setCapability("platformVersion", "4.4"); capabilities.setCapability("app", app.getAbsolutePath()); capabilities.setCapability("appPackage", “package_name "); capabilities.setCapability("appActivity", ".activity_name"); } AndroidDriver driver=new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities); AppiumDriver driver = new AppiumDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
  • 34. 34 SauceLabs  Automated testing in the cloud for CI.  Provides the world’s largest cross-browser grid for executing Selenium & Appium WebDriver tests
  • 36. 36 SauceLabs - Setup public class AppiumDriverTest { private AppiumDriver driver; @Parameters({"username", "key", "os", "browser", "browserVersion"}) @BeforeMethod public void setUp(@Optional("nael_sl") String username, @Optional("e8ea754d-c8a0-488f-993c-15f583ab2179") String key, @Optional("mac") String os, @Optional("iphone") String browser, @Optional("5.0") String browserVersion, Method method) throws Exception { // Choose the browser, version, and platform to test DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setBrowserName(browser); capabilities.setCapability("version", browserVersion); capabilities.setCapability("platform", Platform.valueOf(os)); capabilities.setCapability("name", method.getName()); // Create the connection to Sauce Labs to run the tests this.driver = new RemoteWebDriver(new URL("http://" + username + ":" + key + "@ondemand.saucelabs.com:80/wd/hub"),capabilities); } @Test public void webDriver() throws Exception { // Make the browser get the page and check its title driver.get("http://www.amazon.com/"); assertEquals("Amazon.com: Online Shopping for Electronics, Apparel, Computers, Books, DVDs & more", driver.getTitle()); } }
  • 39. 39Confidential and propriety Galil Software, Ltd. 201225.12.11 Drivers Relationship
  • 40. 40Confidential and propriety Galil Software, Ltd. 201225.12.11 Web driver FW Design
  • 41. 41Confidential and propriety Galil Software, Ltd. 201225.12.11 Appium Design
  • 42. 42Confidential and propriety Galil Software, Ltd. 201225.12.11 Current FW
  • 43. 43Confidential and propriety Galil Software, Ltd. 201225.12.11 Report
  • 44. 44Confidential and propriety Galil Software, Ltd. 201225.12.11 Thank You  Nael Abd Aljawad – QA Automation Technical Leader

Notas do Editor

  1. A native application (native app) is an application program that has been developed for use on a particular platform or device. (Ingress, Instagram…) A Web application (Web app) is an application program that is stored on a remote server and delivered over the Internet through a browser interface.(Designer Pages, Wistia ,Wufoo) A hybrid application (hybrid app) is one that combines elements of both native and Web applications.(Facebook - Three20 as the core UI along with the Facebook SDK but HTML5 for feeds)
  2. http://appium.io/introduction.html
  3. JavaScript Object Notation (JSON) is used to represent objects with complex data structures. It is used primarily to transfer data between a server and a client on the web. It has very much become an industry standard for various REST web services, playing a strong alternative to XML. A client can send a person’s details to a server in the preceding JSON format, which the server can parse and create an instance of the Person object for use in its execution. Later, the response can be sent back by the server to the client in the JSON format, the data of which the client can use to create an object of a class.
  4. Npm: package manager that makes it easy for JavaScript developers to share and reuse code, and it makes it easy to update the code that you're sharing. Node.js: is an open source, cross-platform runtime environment for server-side and networking applications. Node.js applications are written in JavaScript, and can be run within the Node.js runtime on OS X, Microsoft Windows, Linux, FreeBSD, NonStop, IBM AIX,IBM System z and IBM i. Its work is hosted and supported by the Node.js Foundation,[3] a Collaborative Project at Linux Foundation.
  5. http://appium.readthedocs.org/en/stable/en/about-appium/appium-clients/
  6. https://docs.saucelabs.com/tutorials/appium/