SlideShare a Scribd company logo
1 of 21
Mobile Automation Testing Using APPIUM
Created By: Keshav Kashyap
Agenda:-
 What is Mobile Automation?
 How to Setup Android SDK?
 Install and Un-install Application using CMD
 How to get App Properties?
 How to Use Appium?
 How to program in Eclipse using Appium?
 What are Desired Capabilities?
 How to find elements in Mobile App using UI Automator?
 Sample Program and Demo
 Limitations of Appium
What is Mobile Automation?

Mobile Automated testing provides a mechanism to
consistently repeat a test procedure and verify application
results. It can be effective both for regression testing as
well during development.

Testing mobile applications is different and more
complex than testing traditional desktop and web
applications.

Mobile applications need to be tested on a variety of
software platforms and versions, on diverse hardware and
form factors, and under different network connectivity
conditions.

Moreover, the rapid pace of mobile OS updates, the
frequent introduction of new devices and the customer
expectation of quick upgrades require additional test
cycles
Challenges in Mobile Automation Testing :-
Two Key Challenges in Mobile Application Test Automation
Mobile Platforms and Technology Coverage
The primary factor that determines an automation tool’s success is its ability to
work across platforms and technology stacks. The following challenges influence
automation success:
Device Diversity:
Multiple platforms and browsers.
Rendering differences.
Mobile devices with varied application run times.
Network Challenges:
•Multiple network types (e.g., GSM/GPRS/Wi-Fi/Wi-Max).
•Different speeds of connectivity across geographies.
•Multiple network operators with customized network features.
Hardware Challenges:
•Limitations in processing speed.
•Limitations of mobile memory size.
Pre-Requisites for Mobile Automation :-
• Eclipse should be installed
• Android SDK and APIs for recent versions of
Android
• Selenium Webdriver knowledge.
• Java knowledge.
• Basic Knowledge of Mobile.
Setup :-

Download Selenium Java zip archive and extract all the
files in a folder called Selenium.

Download Appium for Windows zip archive and extract
all files in a folder called Appium.

Download Appium Java client jar

Create a new java project in Eclipse and add Selenium and
Appium Java client Jar files
How to Setup Android SDK?
 Install and Setup JAVA
 Setup Java Path in Environment Variables.
 Setup Path in User Variable
 Setup JAVA_HOME in User Variable
C:Program FilesJavajdk1.7.0bin;
 Check that whether Java is installed on your system or not.
 Open cmd  type Java -version  Output will provide the installed version of
Java
 Install Android SDK OR Just Copy SDK folder shared by anyone.
If you don’t have SDK folder then you have to just click on the above installer_r16-
windows.exe. By default it will be installed in C:Program FilesAndroid. You have to
just copy the folder and paste it to some other drive. E.g.:- D:SDK
 Now setup ANDROID_HOME
 Setup Tools and Platform Tools Path in User Variable
 Restart the system (Strongly Recommended)
Install and Un-install Application using CMD
Install an App :-
adb install full_path_of_apk
adb install C:UsersTTNDDownloadsteamchat.apk
Un-Install an App :-
adb uninstall package_name_of_apk
adb uninstall com.famelive
How to get App Properties:-
• For app properties we have to use
command:-
D:SDKbuild-tools22.0.1aapt.exe dump
badging app_name.apk
What is Appium?:-
Appium is an Open source , Cross Platform test
automation tool for mobile apps
Hosted with GitHub
 Maintained by Dan Cuellar, Jonathan Lipps and
a number of other contributors
Supports automation of Native , Hybrid and
Mobile Web apps
Based on WebDriver JSON wire protocol
Based on Client-Server Architecture
Appium Server written in Node.js
Appium Architecture:-
How to Use or Run Appium?:-
Go to the Appium folder you downloaded earlier and run Appium.exe.
Click on General Settings button (second button) and verify URL you defined
in Eclipse matches the server address and port from the Appium app.
Click on Launch Button.
How to program in Eclipse using
Appium:-
What are Desired Capabilities?
Desired Capabilities are a set of keys and values sent to the Appium server to tell
the server what kind of automation session we’re interested in starting up.
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(CapabilityType.BROWSER_NAME, “”);
capabilities.setCapability(“platformName”, “Android”);
capabilities.setCapability(CapabilityType.VERSION, “4.4”);
capabilities.setCapability(“deviceName”, “111bd508”);
capabilities.setCapability(“app”, app.getAbsolutePath());
capabilities.setCapability(“appPackage”, “com.example.android.contactmanager”);
capabilities.setCapability(“appActivity”, “.ContactManager”);
driver = new AndroidDriver(new URL(“http://127.0.0.1:4723/wd/hub”), capabilities);
Setup Mobile Device For Automation:-
• For setting up mobile devices, we have to verify
that whether developer options is enable or not.
• USB Debugging is allowed or not.
• For Real device, Android version must be 4.2 or
above.
Object Identification Using UI Automator:-
 Go to SDK folder and open the tools folder.
 Open uiautomatorviewer.
 On the actual device, open the app to the page you want to
automate.
 In UI Automator Viewer, click on Device screenshot
(second button).
 Click any element on the page and look in the Node detail
window (there you will find details about the selected
element: id, class, name, etc.)
 Use the info found (id, class) in Eclipse to click buttons, fill
input fields
Required Inputs or Query Parameter Details:-
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");
driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"),
capabilities);
}
public void tearDown() throws Exception
{
driver.quit();
}
Tool Comparison Report :-
Advantages of Appium:-
• Open Source Tool
• Support for both platforms iOS and android.
• Handles simulators/emulators and real devices
• Supports automation of hybrid, native and webapps
• Supports most of the programming languages like Java, Ruby,
Python, C# etc.
Limitations of Appium:-
• Appium doesn’t perform testing on mobile devices support
Android Version lower than 4.2.
• Under Developing stage can't use for big project initially
• Doesn't support image comparison.
• Facing difficulty in testing the switching action of application
(from the web app to native and vice-versa).
Appium

More Related Content

What's hot

Automation Testing With Appium
Automation Testing With AppiumAutomation Testing With Appium
Automation Testing With AppiumKnoldus Inc.
 
Appium basics
Appium basicsAppium basics
Appium basicsSyam Sasi
 
Appium Presentation
Appium Presentation Appium Presentation
Appium Presentation OmarUsman6
 
Introduction To Mobile-Automation
Introduction To Mobile-AutomationIntroduction To Mobile-Automation
Introduction To Mobile-AutomationMindfire Solutions
 
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
 
Mobile Testing with Appium
Mobile Testing with AppiumMobile Testing with Appium
Mobile Testing with AppiumKnoldus Inc.
 
Mobile Application Testing
Mobile Application TestingMobile Application Testing
Mobile Application TestingSWAAM Tech
 
Mobile Application Testing by Javed Ansari
Mobile Application Testing by Javed AnsariMobile Application Testing by Javed Ansari
Mobile Application Testing by Javed AnsariJaved Ansari
 
Appium an introduction
Appium   an introductionAppium   an introduction
Appium an introductionVivek Shringi
 
Test Automation and Selenium
Test Automation and SeleniumTest Automation and Selenium
Test Automation and SeleniumKarapet Sarkisyan
 
Mobile testing practices
Mobile testing practicesMobile testing practices
Mobile testing practicesRakesh Jha
 
Mobile application testing
Mobile application testingMobile application testing
Mobile application testingvodQA
 
What is Appium? Edureka
What is Appium? EdurekaWhat is Appium? Edureka
What is Appium? EdurekaEdureka!
 
Espresso testing
Espresso testingEspresso testing
Espresso testingvodqancr
 

What's hot (20)

Automation Testing With Appium
Automation Testing With AppiumAutomation Testing With Appium
Automation Testing With Appium
 
Appium basics
Appium basicsAppium basics
Appium basics
 
Appium Presentation
Appium Presentation Appium Presentation
Appium Presentation
 
Appium
AppiumAppium
Appium
 
Introduction To Mobile-Automation
Introduction To Mobile-AutomationIntroduction To Mobile-Automation
Introduction To Mobile-Automation
 
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
 
Automation using Appium
Automation using AppiumAutomation using Appium
Automation using Appium
 
Mobile Testing with Appium
Mobile Testing with AppiumMobile Testing with Appium
Mobile Testing with Appium
 
Mobile Application Testing
Mobile Application TestingMobile Application Testing
Mobile Application Testing
 
[Open southcode] ios testing with appium
[Open southcode] ios testing with appium[Open southcode] ios testing with appium
[Open southcode] ios testing with appium
 
Mobile Application Testing by Javed Ansari
Mobile Application Testing by Javed AnsariMobile Application Testing by Javed Ansari
Mobile Application Testing by Javed Ansari
 
Appium an introduction
Appium   an introductionAppium   an introduction
Appium an introduction
 
Test Automation and Selenium
Test Automation and SeleniumTest Automation and Selenium
Test Automation and Selenium
 
Mobile testing practices
Mobile testing practicesMobile testing practices
Mobile testing practices
 
Appium.pptx
Appium.pptxAppium.pptx
Appium.pptx
 
Mobile Application Testing
Mobile Application TestingMobile Application Testing
Mobile Application Testing
 
Automated Test Framework with Cucumber
Automated Test Framework with CucumberAutomated Test Framework with Cucumber
Automated Test Framework with Cucumber
 
Mobile application testing
Mobile application testingMobile application testing
Mobile application testing
 
What is Appium? Edureka
What is Appium? EdurekaWhat is Appium? Edureka
What is Appium? Edureka
 
Espresso testing
Espresso testingEspresso testing
Espresso testing
 

Similar to Appium

Appium understanding document
Appium understanding documentAppium understanding document
Appium understanding documentAkshay Pillay
 
Module-I_Introduction-to-Android.pptx
Module-I_Introduction-to-Android.pptxModule-I_Introduction-to-Android.pptx
Module-I_Introduction-to-Android.pptxlancelotlaytan1996
 
Android studio
Android studioAndroid studio
Android studioAndri Yabu
 
Android Automation Using Robotium
Android Automation Using RobotiumAndroid Automation Using Robotium
Android Automation Using RobotiumMindfire Solutions
 
Android App development and test environment, Understaing android app structure
Android App development and test environment, Understaing android app structureAndroid App development and test environment, Understaing android app structure
Android App development and test environment, Understaing android app structureVijay Rastogi
 
Developing for Android-Types of Android Application
Developing for Android-Types of Android ApplicationDeveloping for Android-Types of Android Application
Developing for Android-Types of Android ApplicationNandini Prabhu
 
Getting started with android dev and test perspective
Getting started with android   dev and test perspectiveGetting started with android   dev and test perspective
Getting started with android dev and test perspectiveGunjan Kumar
 
Titanium Studio [Updated - 18/12/2011]
Titanium Studio [Updated - 18/12/2011]Titanium Studio [Updated - 18/12/2011]
Titanium Studio [Updated - 18/12/2011]Sentinel Solutions Ltd
 
Creation of simple application using - step by step
Creation of simple application using - step by stepCreation of simple application using - step by step
Creation of simple application using - step by steppriya Nithya
 
Android installation guide
Android installation guideAndroid installation guide
Android installation guidemagicshui
 
Mobile Testing with Selenium 2 by Jason Huggins
Mobile Testing with Selenium 2 by Jason HugginsMobile Testing with Selenium 2 by Jason Huggins
Mobile Testing with Selenium 2 by Jason HugginsSauce Labs
 
Final NEWS.pdf
Final NEWS.pdfFinal NEWS.pdf
Final NEWS.pdfRebaMaheen
 
Final NewsApp.pdf
Final NewsApp.pdfFinal NewsApp.pdf
Final NewsApp.pdfRebaMaheen
 
Android Application Development Using Java
Android Application Development Using JavaAndroid Application Development Using Java
Android Application Development Using Javaamaankhan
 

Similar to Appium (20)

Appium understanding document
Appium understanding documentAppium understanding document
Appium understanding document
 
Android Development
Android DevelopmentAndroid Development
Android Development
 
Appium solution artizone
Appium solution   artizoneAppium solution   artizone
Appium solution artizone
 
Appium- part 1
Appium- part 1Appium- part 1
Appium- part 1
 
Module-I_Introduction-to-Android.pptx
Module-I_Introduction-to-Android.pptxModule-I_Introduction-to-Android.pptx
Module-I_Introduction-to-Android.pptx
 
Android studio
Android studioAndroid studio
Android studio
 
Android Automation Using Robotium
Android Automation Using RobotiumAndroid Automation Using Robotium
Android Automation Using Robotium
 
APPIUM
APPIUMAPPIUM
APPIUM
 
Android App development and test environment, Understaing android app structure
Android App development and test environment, Understaing android app structureAndroid App development and test environment, Understaing android app structure
Android App development and test environment, Understaing android app structure
 
Developing for Android-Types of Android Application
Developing for Android-Types of Android ApplicationDeveloping for Android-Types of Android Application
Developing for Android-Types of Android Application
 
Getting started with android dev and test perspective
Getting started with android   dev and test perspectiveGetting started with android   dev and test perspective
Getting started with android dev and test perspective
 
Titanium Studio [Updated - 18/12/2011]
Titanium Studio [Updated - 18/12/2011]Titanium Studio [Updated - 18/12/2011]
Titanium Studio [Updated - 18/12/2011]
 
Appium solution
Appium solutionAppium solution
Appium solution
 
Android CI and Appium
Android CI and AppiumAndroid CI and Appium
Android CI and Appium
 
Creation of simple application using - step by step
Creation of simple application using - step by stepCreation of simple application using - step by step
Creation of simple application using - step by step
 
Android installation guide
Android installation guideAndroid installation guide
Android installation guide
 
Mobile Testing with Selenium 2 by Jason Huggins
Mobile Testing with Selenium 2 by Jason HugginsMobile Testing with Selenium 2 by Jason Huggins
Mobile Testing with Selenium 2 by Jason Huggins
 
Final NEWS.pdf
Final NEWS.pdfFinal NEWS.pdf
Final NEWS.pdf
 
Final NewsApp.pdf
Final NewsApp.pdfFinal NewsApp.pdf
Final NewsApp.pdf
 
Android Application Development Using Java
Android Application Development Using JavaAndroid Application Development Using Java
Android Application Development Using Java
 

More from Keshav Kashyap

Google Analytics Report Automation (Magic)
Google Analytics Report Automation (Magic) Google Analytics Report Automation (Magic)
Google Analytics Report Automation (Magic) Keshav Kashyap
 
Google Analytics Report Automation (Magic Script)
Google Analytics Report Automation (Magic Script)Google Analytics Report Automation (Magic Script)
Google Analytics Report Automation (Magic Script)Keshav Kashyap
 
Google Analytics Report Automation (Magic Script)
Google Analytics Report Automation (Magic Script)Google Analytics Report Automation (Magic Script)
Google Analytics Report Automation (Magic Script)Keshav Kashyap
 

More from Keshav Kashyap (6)

Next level of Appium
Next level of AppiumNext level of Appium
Next level of Appium
 
Api testing
Api testingApi testing
Api testing
 
#Fame case study
#Fame case study#Fame case study
#Fame case study
 
Google Analytics Report Automation (Magic)
Google Analytics Report Automation (Magic) Google Analytics Report Automation (Magic)
Google Analytics Report Automation (Magic)
 
Google Analytics Report Automation (Magic Script)
Google Analytics Report Automation (Magic Script)Google Analytics Report Automation (Magic Script)
Google Analytics Report Automation (Magic Script)
 
Google Analytics Report Automation (Magic Script)
Google Analytics Report Automation (Magic Script)Google Analytics Report Automation (Magic Script)
Google Analytics Report Automation (Magic Script)
 

Recently uploaded

Crushers to screens in aggregate production
Crushers to screens in aggregate productionCrushers to screens in aggregate production
Crushers to screens in aggregate productionChinnuNinan
 
11. Properties of Liquid Fuels in Energy Engineering.pdf
11. Properties of Liquid Fuels in Energy Engineering.pdf11. Properties of Liquid Fuels in Energy Engineering.pdf
11. Properties of Liquid Fuels in Energy Engineering.pdfHafizMudaserAhmad
 
Virtual memory management in Operating System
Virtual memory management in Operating SystemVirtual memory management in Operating System
Virtual memory management in Operating SystemRashmi Bhat
 
Input Output Management in Operating System
Input Output Management in Operating SystemInput Output Management in Operating System
Input Output Management in Operating SystemRashmi Bhat
 
US Department of Education FAFSA Week of Action
US Department of Education FAFSA Week of ActionUS Department of Education FAFSA Week of Action
US Department of Education FAFSA Week of ActionMebane Rash
 
home automation using Arduino by Aditya Prasad
home automation using Arduino by Aditya Prasadhome automation using Arduino by Aditya Prasad
home automation using Arduino by Aditya Prasadaditya806802
 
DM Pillar Training Manual.ppt will be useful in deploying TPM in project
DM Pillar Training Manual.ppt will be useful in deploying TPM in projectDM Pillar Training Manual.ppt will be useful in deploying TPM in project
DM Pillar Training Manual.ppt will be useful in deploying TPM in projectssuserb6619e
 
Gravity concentration_MI20612MI_________
Gravity concentration_MI20612MI_________Gravity concentration_MI20612MI_________
Gravity concentration_MI20612MI_________Romil Mishra
 
System Simulation and Modelling with types and Event Scheduling
System Simulation and Modelling with types and Event SchedulingSystem Simulation and Modelling with types and Event Scheduling
System Simulation and Modelling with types and Event SchedulingBootNeck1
 
Research Methodology for Engineering pdf
Research Methodology for Engineering pdfResearch Methodology for Engineering pdf
Research Methodology for Engineering pdfCaalaaAbdulkerim
 
Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...121011101441
 
Earthing details of Electrical Substation
Earthing details of Electrical SubstationEarthing details of Electrical Substation
Earthing details of Electrical Substationstephanwindworld
 
Katarzyna Lipka-Sidor - BIM School Course
Katarzyna Lipka-Sidor - BIM School CourseKatarzyna Lipka-Sidor - BIM School Course
Katarzyna Lipka-Sidor - BIM School Coursebim.edu.pl
 
multiple access in wireless communication
multiple access in wireless communicationmultiple access in wireless communication
multiple access in wireless communicationpanditadesh123
 
Autonomous emergency braking system (aeb) ppt.ppt
Autonomous emergency braking system (aeb) ppt.pptAutonomous emergency braking system (aeb) ppt.ppt
Autonomous emergency braking system (aeb) ppt.pptbibisarnayak0
 
Arduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptArduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptSAURABHKUMAR892774
 
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfCCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfAsst.prof M.Gokilavani
 

Recently uploaded (20)

Crushers to screens in aggregate production
Crushers to screens in aggregate productionCrushers to screens in aggregate production
Crushers to screens in aggregate production
 
11. Properties of Liquid Fuels in Energy Engineering.pdf
11. Properties of Liquid Fuels in Energy Engineering.pdf11. Properties of Liquid Fuels in Energy Engineering.pdf
11. Properties of Liquid Fuels in Energy Engineering.pdf
 
Virtual memory management in Operating System
Virtual memory management in Operating SystemVirtual memory management in Operating System
Virtual memory management in Operating System
 
Input Output Management in Operating System
Input Output Management in Operating SystemInput Output Management in Operating System
Input Output Management in Operating System
 
US Department of Education FAFSA Week of Action
US Department of Education FAFSA Week of ActionUS Department of Education FAFSA Week of Action
US Department of Education FAFSA Week of Action
 
home automation using Arduino by Aditya Prasad
home automation using Arduino by Aditya Prasadhome automation using Arduino by Aditya Prasad
home automation using Arduino by Aditya Prasad
 
DM Pillar Training Manual.ppt will be useful in deploying TPM in project
DM Pillar Training Manual.ppt will be useful in deploying TPM in projectDM Pillar Training Manual.ppt will be useful in deploying TPM in project
DM Pillar Training Manual.ppt will be useful in deploying TPM in project
 
Gravity concentration_MI20612MI_________
Gravity concentration_MI20612MI_________Gravity concentration_MI20612MI_________
Gravity concentration_MI20612MI_________
 
POWER SYSTEMS-1 Complete notes examples
POWER SYSTEMS-1 Complete notes  examplesPOWER SYSTEMS-1 Complete notes  examples
POWER SYSTEMS-1 Complete notes examples
 
System Simulation and Modelling with types and Event Scheduling
System Simulation and Modelling with types and Event SchedulingSystem Simulation and Modelling with types and Event Scheduling
System Simulation and Modelling with types and Event Scheduling
 
Research Methodology for Engineering pdf
Research Methodology for Engineering pdfResearch Methodology for Engineering pdf
Research Methodology for Engineering pdf
 
Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...
 
Earthing details of Electrical Substation
Earthing details of Electrical SubstationEarthing details of Electrical Substation
Earthing details of Electrical Substation
 
Katarzyna Lipka-Sidor - BIM School Course
Katarzyna Lipka-Sidor - BIM School CourseKatarzyna Lipka-Sidor - BIM School Course
Katarzyna Lipka-Sidor - BIM School Course
 
multiple access in wireless communication
multiple access in wireless communicationmultiple access in wireless communication
multiple access in wireless communication
 
Autonomous emergency braking system (aeb) ppt.ppt
Autonomous emergency braking system (aeb) ppt.pptAutonomous emergency braking system (aeb) ppt.ppt
Autonomous emergency braking system (aeb) ppt.ppt
 
young call girls in Green Park🔝 9953056974 🔝 escort Service
young call girls in Green Park🔝 9953056974 🔝 escort Serviceyoung call girls in Green Park🔝 9953056974 🔝 escort Service
young call girls in Green Park🔝 9953056974 🔝 escort Service
 
Arduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptArduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.ppt
 
Design and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdfDesign and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdf
 
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfCCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
 

Appium

  • 1. Mobile Automation Testing Using APPIUM Created By: Keshav Kashyap
  • 2. Agenda:-  What is Mobile Automation?  How to Setup Android SDK?  Install and Un-install Application using CMD  How to get App Properties?  How to Use Appium?  How to program in Eclipse using Appium?  What are Desired Capabilities?  How to find elements in Mobile App using UI Automator?  Sample Program and Demo  Limitations of Appium
  • 3. What is Mobile Automation?  Mobile Automated testing provides a mechanism to consistently repeat a test procedure and verify application results. It can be effective both for regression testing as well during development.  Testing mobile applications is different and more complex than testing traditional desktop and web applications.  Mobile applications need to be tested on a variety of software platforms and versions, on diverse hardware and form factors, and under different network connectivity conditions.  Moreover, the rapid pace of mobile OS updates, the frequent introduction of new devices and the customer expectation of quick upgrades require additional test cycles
  • 4. Challenges in Mobile Automation Testing :- Two Key Challenges in Mobile Application Test Automation Mobile Platforms and Technology Coverage The primary factor that determines an automation tool’s success is its ability to work across platforms and technology stacks. The following challenges influence automation success: Device Diversity: Multiple platforms and browsers. Rendering differences. Mobile devices with varied application run times. Network Challenges: •Multiple network types (e.g., GSM/GPRS/Wi-Fi/Wi-Max). •Different speeds of connectivity across geographies. •Multiple network operators with customized network features. Hardware Challenges: •Limitations in processing speed. •Limitations of mobile memory size.
  • 5. Pre-Requisites for Mobile Automation :- • Eclipse should be installed • Android SDK and APIs for recent versions of Android • Selenium Webdriver knowledge. • Java knowledge. • Basic Knowledge of Mobile.
  • 6. Setup :-  Download Selenium Java zip archive and extract all the files in a folder called Selenium.  Download Appium for Windows zip archive and extract all files in a folder called Appium.  Download Appium Java client jar  Create a new java project in Eclipse and add Selenium and Appium Java client Jar files
  • 7. How to Setup Android SDK?  Install and Setup JAVA  Setup Java Path in Environment Variables.  Setup Path in User Variable  Setup JAVA_HOME in User Variable C:Program FilesJavajdk1.7.0bin;  Check that whether Java is installed on your system or not.  Open cmd  type Java -version  Output will provide the installed version of Java  Install Android SDK OR Just Copy SDK folder shared by anyone. If you don’t have SDK folder then you have to just click on the above installer_r16- windows.exe. By default it will be installed in C:Program FilesAndroid. You have to just copy the folder and paste it to some other drive. E.g.:- D:SDK  Now setup ANDROID_HOME  Setup Tools and Platform Tools Path in User Variable  Restart the system (Strongly Recommended)
  • 8. Install and Un-install Application using CMD Install an App :- adb install full_path_of_apk adb install C:UsersTTNDDownloadsteamchat.apk Un-Install an App :- adb uninstall package_name_of_apk adb uninstall com.famelive
  • 9. How to get App Properties:- • For app properties we have to use command:- D:SDKbuild-tools22.0.1aapt.exe dump badging app_name.apk
  • 10. What is Appium?:- Appium is an Open source , Cross Platform test automation tool for mobile apps Hosted with GitHub  Maintained by Dan Cuellar, Jonathan Lipps and a number of other contributors Supports automation of Native , Hybrid and Mobile Web apps Based on WebDriver JSON wire protocol Based on Client-Server Architecture Appium Server written in Node.js
  • 12. How to Use or Run Appium?:- Go to the Appium folder you downloaded earlier and run Appium.exe. Click on General Settings button (second button) and verify URL you defined in Eclipse matches the server address and port from the Appium app. Click on Launch Button.
  • 13. How to program in Eclipse using Appium:-
  • 14. What are Desired Capabilities? Desired Capabilities are a set of keys and values sent to the Appium server to tell the server what kind of automation session we’re interested in starting up. DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability(CapabilityType.BROWSER_NAME, “”); capabilities.setCapability(“platformName”, “Android”); capabilities.setCapability(CapabilityType.VERSION, “4.4”); capabilities.setCapability(“deviceName”, “111bd508”); capabilities.setCapability(“app”, app.getAbsolutePath()); capabilities.setCapability(“appPackage”, “com.example.android.contactmanager”); capabilities.setCapability(“appActivity”, “.ContactManager”); driver = new AndroidDriver(new URL(“http://127.0.0.1:4723/wd/hub”), capabilities);
  • 15. Setup Mobile Device For Automation:- • For setting up mobile devices, we have to verify that whether developer options is enable or not. • USB Debugging is allowed or not. • For Real device, Android version must be 4.2 or above.
  • 16. Object Identification Using UI Automator:-  Go to SDK folder and open the tools folder.  Open uiautomatorviewer.  On the actual device, open the app to the page you want to automate.  In UI Automator Viewer, click on Device screenshot (second button).  Click any element on the page and look in the Node detail window (there you will find details about the selected element: id, class, name, etc.)  Use the info found (id, class) in Eclipse to click buttons, fill input fields
  • 17. Required Inputs or Query Parameter Details:- 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"); driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities); } public void tearDown() throws Exception { driver.quit(); }
  • 19. Advantages of Appium:- • Open Source Tool • Support for both platforms iOS and android. • Handles simulators/emulators and real devices • Supports automation of hybrid, native and webapps • Supports most of the programming languages like Java, Ruby, Python, C# etc.
  • 20. Limitations of Appium:- • Appium doesn’t perform testing on mobile devices support Android Version lower than 4.2. • Under Developing stage can't use for big project initially • Doesn't support image comparison. • Facing difficulty in testing the switching action of application (from the web app to native and vice-versa).