SlideShare a Scribd company logo
Get a start with
for Mobile Automation (Android)
PEER LEARNING PROGRAM
BY ABHISHEK YADAV (@ABHISHEKKYD)
[RECAP] Agenda
 Overview of Mobile Automation
 About Appium
 Overview of Appium over other open source tools
 Android Installation with emulator
 Scripting using Appium for Mobile Web Automation
 Scripting using Appium for Mobile App Automation
 Framework Development using Appium
 Appium iOS Automation
[RECAP] Overview of Mobile
Automation
Now a days every organization prefers automated testing once a product
reaches to the stable phase to reduce the testing effort. Since testing cost is
an important factor for any project, organizations have started preferring
open source test automation tools (which have reached a stage where they
now rival the commercial ones) instead of investing in costly commercial
testing tools.
A variety of open source automation testing tools is available for almost all
types of testing such as functional, UAT, regression, performance etc. Some
open source tools are Appium, Calabash, MonkeyTalk, Robotium, etc.
[RECAP] About Appium
 Appium is an open source test automation framework for use with
native, hybrid and mobile web apps.
 It drives iOS, Android, and Windows apps using the WebDriver protocol.
 Importantly, Appium is “cross-platform”: it allows you to write tests against
multiple platforms (iOS, Android, Windows), using the same API. This
enables code reuse between iOS, Android, and Windows testsuites.
[RECAP] Appium for Android
Webdriver Controller
UIAutomator Controller
UIAutomator Client
TCP Client
Bootstrap.jar
UIAutomator Server
TCP Server
[RECAP] About Appium
[RECAP] Overview of Appium over
other open source tools
A huge number of mobile testing tools have been developed in recent years
to support mobile development. As more companies are developing mobile
products and the marketplace is seeing more devices, platforms, and versions,
testing your mobile apps is vital. When it comes choosing what mobile testing
tool is right for you, there is a huge array of options, each with different
strengths and weaknesses.
[RECAP] Overview of Appium over
other open source tools
[RECAP] Android Installation with
emulator
 Android Studio provides the fastest tools for building apps on every type
of Android device.
 World-class code editing, debugging, performance tooling, a flexible build
system, and an instant build/deploy system all allow you to focus on
building unique and high quality apps.
https://developer.android.com/studio/index.html
[RECAP] Android Installation with
emulatorAndroid Studio GUI
[RECAP] Android Installation with
emulator android
android avd
Command Line }
[RECAP] Scripting using Appium for
Mobile Web Automation
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("deviceName", "TestAndroid");
capabilities.setCapability("platformName", "Android");
capabilities.setCapability(CapabilityType.BROWSER_NAME, "browser");
capabilities.setCapability("platformVersion", "5.1");
driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"),
capabilities);
driver.manage().timeouts().implicitlyWait(80, TimeUnit.SECONDS);
driver.get("http://www.google.com");
WebElement keyword = driver.findElement(By.name("q"));
keyword.sendKeys("abhishek yadav qa");
[RECAP] Scripting using Appium for
Mobile App Automation
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("deviceName", "TestAndroid");
capabilities.setCapability("platformName", "Android");
capabilities.setCapability(CapabilityType.BROWSER_NAME, "Android");
capabilities.setCapability("platformVersion", "5.1");
capabilities.setCapability("appPackage", "com.android.calculator2");
capabilities.setCapability("appActivity","com.android.calculator2.Calculator
");
driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"),
capabilities);
driver.manage().timeouts().implicitlyWait(80, TimeUnit.SECONDS);
[RECAP] Scripting using Appium for
Mobile App Automation
[RECAP] Framework Development
using Appium
 Apache Maven
 Page Objects
 TestNG
 ReportNG
 Allure
 Cucumber (BDD)
 Jenkins
[RECAP] Appium for iOS
Webdriver Controller
Instruments Controller
Instruments Command
Server
Unix Socket Server
Instruments Command
Client
Unix Socket Client
Instruments
Bootstrap.js
[RECAP] Appium iOS Automation
[RECAP] Agenda
 Appium Maven Project
 Script Development within Maven Project
 Locator Strategy for Android Web
 Advance Locator Strategy for Android Web
 Advance Locator Strategy for iOS App
[RECAP] Appium Maven Project
[RECAP] Script Development within
Maven Project
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("deviceName", "TestAndroid");
capabilities.setCapability("platformName", "Android");
capabilities.setCapability(CapabilityType.BROWSER_NAME, "browser");
capabilities.setCapability("platformVersion", "5.1");
driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"),
capabilities);
driver.manage().timeouts().implicitlyWait(80, TimeUnit.SECONDS);
driver.get("http://www.google.com");
WebElement keyword = driver.findElement(By.name("q"));
keyword.sendKeys("abhishek yadav qa");
keyword.sendKeys(Keys.ENTER);
[RECAP] Locator Strategy for Android
 Id
 Name
 css selector
 xpath
 //android.widget.TextView[@resource-
id='com.apptivateme.next.ct:id/tvVideoTime']
 //android.widget.ImageView[@resource-
id='com.apptivateme.next.ct:id/search_close_btn']
 //android.widget.FrameLayout[@resource-
id='com.apptivateme.next.ct:id/transparent_spacer_passthrough']
[RECAP] Advanced Locator Strategies
Android
 MobileBy
 ByAccessibilityId
 ByAndroidUIAutomator
[RECAP] MobileBy
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("deviceName", "TestAndroid");
capabilities.setCapability("platformName", "Android");
capabilities.setCapability(CapabilityType.BROWSER_NAME, "Android");
capabilities.setCapability("platformVersion", "5.1");
capabilities.setCapability("appPackage", "com.android.calculator2");
capabilities.setCapability("appActivity","com.android.calculator2.Calculator");
driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"),
capabilities);
driver.manage().timeouts().implicitlyWait(80, TimeUnit.SECONDS);
driver.findElement(MobileBy.name("4")).click();
[RECAP] ByAccessibilityId
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("deviceName", "TestAndroid");
capabilities.setCapability("platformName", "Android");
capabilities.setCapability(CapabilityType.BROWSER_NAME, "Android");
capabilities.setCapability("platformVersion", "5.1");
capabilities.setCapability("appPackage", "com.android.calculator2");
capabilities.setCapability("appActivity","com.android.calculator2.Calculator");
driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"),
capabilities);
driver.manage().timeouts().implicitlyWait(80, TimeUnit.SECONDS);
driver.findElement(MobileBy.name("4")).click();
driver.findElement(MobileBy.AccessibilityId("delete")).click();
[RECAP] ByAndroidUIAutomator
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("deviceName", "TestAndroid");
capabilities.setCapability("platformName", "Android");
capabilities.setCapability(CapabilityType.BROWSER_NAME, "Android");
capabilities.setCapability("platformVersion", "5.1");
capabilities.setCapability("appPackage", "com.android.calculator2");
capabilities.setCapability("appActivity","com.android.calculator2.Calculator");
driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
driver.manage().timeouts().implicitlyWait(80, TimeUnit.SECONDS);
driver.findElement(MobileBy.AndroidUIAutomator("new UiSelector().text("3")")).click();
[RECAP] ByAndroidUIAutomator
 https://discuss.appium.io/t/how-to-use-uiselector-with-appium-in-
java/443/20
[RECAP] Locator Strategy for iOS
 Id
 Name
 css selector
 xpath
 //UIAApplication[1]/UIAWindow[1]/UIASearchBar[1]/UIASearchBar[1]
[RECAP] Locator Strategy for iOS
[RECAP] Advance Locator Strategy for
iOS
 IosUIAutomation
driver.findElementByIosUIAutomation
("tableViews()[0].cells(1).textViews()
.firstWithPredicate("name == New Delhi And NCR")");
https://discuss.appium.io/t/how-to-use-findelements-byiosuiautomation/607
Agenda
 Install Appium using NPM
 Start Appium Server from command line
 Command line Arguments for Appium
 Features of New Appium Client
 Live practical to automate Twitter Mobile App
 Live practical to automate Facebook Mobile App
 Best practices for framework development using Appium and Java
Appium using NPM and CLI
 npm install –g appium
 appium
https://github.com/appium/appium/blob/master/docs/en/writing-running-
appium/caps.md
Appium Live Demo
 Twitter
 Facebook
Features of New Appium Client
Best practices for framework
development
References
 http://appium.io/
 https://appium.io/slate/en/tutorial/android.html
 https://github.com/appium/appium
 https://wiki.saucelabs.com/display/DOCS/Getting+Started+with+Appium+
for+Mobile+Native+Application+Testing
 https://github.com/appium/appium-desktop
 http://testng.org/doc/
 https://maven.apache.org/
Appium overview session final
Appium overview session final

More Related Content

What's hot

Appium meet up noida
Appium meet up noidaAppium meet up noida
Appium meet up noida
Amit Rawat
 
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 overview
Appium overviewAppium overview
Appium overview
Abhishek Yadav
 
Appium testing api
Appium testing apiAppium testing api
Appium testing api
b4usolution .
 
Appium - test automation for mobile apps
Appium - test automation for mobile appsAppium - test automation for mobile apps
Appium - test automation for mobile apps
Aleksejs Trescalins
 
Appium workship, Mobile Web+Dev Conference
Appium workship,  Mobile Web+Dev ConferenceAppium workship,  Mobile Web+Dev Conference
Appium workship, Mobile Web+Dev Conference
Isaac Murchie
 
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
Bitbar
 
ATAGTR2017 Appium
ATAGTR2017 AppiumATAGTR2017 Appium
ATAGTR2017 Appium
Agile Testing Alliance
 
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
BugRaptors
 
Appium solution
Appium solutionAppium solution
Appium solution
Nael Abd Eljawad
 
Appium
AppiumAppium
Getting started with appium
Getting started with appiumGetting started with appium
Getting started with appium
Pratik Patel
 
Automation Testing With Appium
Automation Testing With AppiumAutomation Testing With Appium
Automation Testing With Appium
Knoldus Inc.
 
Appium training online|Mobile automation testing with appium
Appium training online|Mobile automation testing with appiumAppium training online|Mobile automation testing with appium
Appium training online|Mobile automation testing with appium
QA Masters
 
Appium tutorial| Appium Training
Appium tutorial| Appium Training Appium tutorial| Appium Training
Appium tutorial| Appium Training
QA Masters
 
Android & iOS Automation Using Appium
Android & iOS Automation Using AppiumAndroid & iOS Automation Using Appium
Android & iOS Automation Using Appium
Mindfire Solutions
 
Appium basics
Appium basicsAppium basics
Appium basics
Syam Sasi
 
Mastering Mobile Test Automation with Appium
Mastering Mobile Test Automation with AppiumMastering Mobile Test Automation with Appium
Mastering Mobile Test Automation with Appium
Perfecto by Perforce
 
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
Perfecto by Perforce
 
Appium workshop technopark trivandrum
Appium workshop technopark trivandrumAppium workshop technopark trivandrum
Appium workshop technopark trivandrum
Syam Sasi
 

What's hot (20)

Appium meet up noida
Appium meet up noidaAppium meet up noida
Appium meet up noida
 
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 overview
Appium overviewAppium overview
Appium overview
 
Appium testing api
Appium testing apiAppium testing api
Appium testing api
 
Appium - test automation for mobile apps
Appium - test automation for mobile appsAppium - test automation for mobile apps
Appium - test automation for mobile apps
 
Appium workship, Mobile Web+Dev Conference
Appium workship,  Mobile Web+Dev ConferenceAppium workship,  Mobile Web+Dev Conference
Appium workship, Mobile Web+Dev Conference
 
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
 
ATAGTR2017 Appium
ATAGTR2017 AppiumATAGTR2017 Appium
ATAGTR2017 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 solution
Appium solutionAppium solution
Appium solution
 
Appium
AppiumAppium
Appium
 
Getting started with appium
Getting started with appiumGetting started with appium
Getting started with appium
 
Automation Testing With Appium
Automation Testing With AppiumAutomation Testing With Appium
Automation Testing With Appium
 
Appium training online|Mobile automation testing with appium
Appium training online|Mobile automation testing with appiumAppium training online|Mobile automation testing with appium
Appium training online|Mobile automation testing with appium
 
Appium tutorial| Appium Training
Appium tutorial| Appium Training Appium tutorial| Appium Training
Appium tutorial| Appium Training
 
Android & iOS Automation Using Appium
Android & iOS Automation Using AppiumAndroid & iOS Automation Using Appium
Android & iOS Automation Using Appium
 
Appium basics
Appium basicsAppium basics
Appium basics
 
Mastering Mobile Test Automation with Appium
Mastering Mobile Test Automation with AppiumMastering Mobile Test Automation with Appium
Mastering Mobile Test Automation 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
 
Appium workshop technopark trivandrum
Appium workshop technopark trivandrumAppium workshop technopark trivandrum
Appium workshop technopark trivandrum
 

Similar to Appium overview session final

Next level of Appium
Next level of AppiumNext level of Appium
Next level of Appium
Keshav Kashyap
 
Appium
AppiumAppium
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
Moataz Nabil
 
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
headspin2
 
Mobile Quality Night Vienna 2015 - Testobject Appium in der Cloud
Mobile Quality Night Vienna 2015 - Testobject Appium in der CloudMobile Quality Night Vienna 2015 - Testobject Appium in der Cloud
Mobile Quality Night Vienna 2015 - Testobject Appium in der Cloud
Rudolf Grötz
 
Android CI and Appium
Android CI and AppiumAndroid CI and Appium
Android CI and Appium
Oren Ashkenazy
 
Top 10 Automation Testing Tools in 2020
Top 10 Automation Testing Tools in 2020Top 10 Automation Testing Tools in 2020
Top 10 Automation Testing Tools in 2020
Alaina Carter
 
Mobile DevTest Dictionary
Mobile DevTest DictionaryMobile DevTest Dictionary
Mobile DevTest Dictionary
Perfecto by Perforce
 
Automation using Appium
Automation using AppiumAutomation using Appium
Automation using Appium
Livares Technologies Pvt Ltd
 
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
 
Android UI Testing with Appium
Android UI Testing with AppiumAndroid UI Testing with Appium
Android UI Testing with Appium
Luke Maung
 
Top 10 Automation Testing Tools in 2020
Top 10 Automation Testing Tools in 2020Top 10 Automation Testing Tools in 2020
Top 10 Automation Testing Tools in 2020
Marianne Harness
 
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdfA Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
kalichargn70th171
 
Android automation tools
Android automation toolsAndroid automation tools
Android automation tools
SSGMCE SHEGAON
 
Designing an effective hybrid apps automation framework
Designing an effective hybrid apps automation frameworkDesigning an effective hybrid apps automation framework
Designing an effective hybrid apps automation framework
Andrea Tino
 
Mobile Automation with Appium
Mobile Automation with AppiumMobile Automation with Appium
Mobile Automation with Appium
Manoj Kumar Kumar
 
A Comprehensive Guide to Conducting Test Automation Using Appium & Cucumber o...
A Comprehensive Guide to Conducting Test Automation Using Appium & Cucumber o...A Comprehensive Guide to Conducting Test Automation Using Appium & Cucumber o...
A Comprehensive Guide to Conducting Test Automation Using Appium & Cucumber o...
flufftailshop
 
Java Test Automation for REST, Web and Mobile
Java Test Automation for REST, Web and MobileJava Test Automation for REST, Web and Mobile
Java Test Automation for REST, Web and Mobile
Elias Nogueira
 
Hybrid App Development with PhoneGap
Hybrid App Development with PhoneGapHybrid App Development with PhoneGap
Hybrid App Development with PhoneGap
Dotitude
 

Similar to Appium overview session final (20)

Next level of Appium
Next level of AppiumNext level of Appium
Next level of Appium
 
Appium
AppiumAppium
Appium
 
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
 
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
 
Mobile Quality Night Vienna 2015 - Testobject Appium in der Cloud
Mobile Quality Night Vienna 2015 - Testobject Appium in der CloudMobile Quality Night Vienna 2015 - Testobject Appium in der Cloud
Mobile Quality Night Vienna 2015 - Testobject Appium in der Cloud
 
Android CI and Appium
Android CI and AppiumAndroid CI and Appium
Android CI and Appium
 
Top 10 Automation Testing Tools in 2020
Top 10 Automation Testing Tools in 2020Top 10 Automation Testing Tools in 2020
Top 10 Automation Testing Tools in 2020
 
Mobile DevTest Dictionary
Mobile DevTest DictionaryMobile DevTest Dictionary
Mobile DevTest Dictionary
 
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 ...
 
Android UI Testing with Appium
Android UI Testing with AppiumAndroid UI Testing with Appium
Android UI Testing with Appium
 
Top 10 Automation Testing Tools in 2020
Top 10 Automation Testing Tools in 2020Top 10 Automation Testing Tools in 2020
Top 10 Automation Testing Tools in 2020
 
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdfA Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
 
Android automation tools
Android automation toolsAndroid automation tools
Android automation tools
 
Designing an effective hybrid apps automation framework
Designing an effective hybrid apps automation frameworkDesigning an effective hybrid apps automation framework
Designing an effective hybrid apps automation framework
 
Rajiv Profile
Rajiv ProfileRajiv Profile
Rajiv Profile
 
Mobile Automation with Appium
Mobile Automation with AppiumMobile Automation with Appium
Mobile Automation with Appium
 
A Comprehensive Guide to Conducting Test Automation Using Appium & Cucumber o...
A Comprehensive Guide to Conducting Test Automation Using Appium & Cucumber o...A Comprehensive Guide to Conducting Test Automation Using Appium & Cucumber o...
A Comprehensive Guide to Conducting Test Automation Using Appium & Cucumber o...
 
Java Test Automation for REST, Web and Mobile
Java Test Automation for REST, Web and MobileJava Test Automation for REST, Web and Mobile
Java Test Automation for REST, Web and Mobile
 
Hybrid App Development with PhoneGap
Hybrid App Development with PhoneGapHybrid App Development with PhoneGap
Hybrid App Development with PhoneGap
 

Recently uploaded

"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
Fwdays
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
CatarinaPereira64715
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
Abida Shariff
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
Bhaskar Mitra
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 

Recently uploaded (20)

"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 

Appium overview session final

  • 1. Get a start with for Mobile Automation (Android) PEER LEARNING PROGRAM BY ABHISHEK YADAV (@ABHISHEKKYD)
  • 2. [RECAP] Agenda  Overview of Mobile Automation  About Appium  Overview of Appium over other open source tools  Android Installation with emulator  Scripting using Appium for Mobile Web Automation  Scripting using Appium for Mobile App Automation  Framework Development using Appium  Appium iOS Automation
  • 3. [RECAP] Overview of Mobile Automation Now a days every organization prefers automated testing once a product reaches to the stable phase to reduce the testing effort. Since testing cost is an important factor for any project, organizations have started preferring open source test automation tools (which have reached a stage where they now rival the commercial ones) instead of investing in costly commercial testing tools. A variety of open source automation testing tools is available for almost all types of testing such as functional, UAT, regression, performance etc. Some open source tools are Appium, Calabash, MonkeyTalk, Robotium, etc.
  • 4. [RECAP] About Appium  Appium is an open source test automation framework for use with native, hybrid and mobile web apps.  It drives iOS, Android, and Windows apps using the WebDriver protocol.  Importantly, Appium is “cross-platform”: it allows you to write tests against multiple platforms (iOS, Android, Windows), using the same API. This enables code reuse between iOS, Android, and Windows testsuites.
  • 5. [RECAP] Appium for Android Webdriver Controller UIAutomator Controller UIAutomator Client TCP Client Bootstrap.jar UIAutomator Server TCP Server
  • 7. [RECAP] Overview of Appium over other open source tools A huge number of mobile testing tools have been developed in recent years to support mobile development. As more companies are developing mobile products and the marketplace is seeing more devices, platforms, and versions, testing your mobile apps is vital. When it comes choosing what mobile testing tool is right for you, there is a huge array of options, each with different strengths and weaknesses.
  • 8. [RECAP] Overview of Appium over other open source tools
  • 9. [RECAP] Android Installation with emulator  Android Studio provides the fastest tools for building apps on every type of Android device.  World-class code editing, debugging, performance tooling, a flexible build system, and an instant build/deploy system all allow you to focus on building unique and high quality apps. https://developer.android.com/studio/index.html
  • 10. [RECAP] Android Installation with emulatorAndroid Studio GUI
  • 11. [RECAP] Android Installation with emulator android android avd Command Line }
  • 12. [RECAP] Scripting using Appium for Mobile Web Automation DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability("deviceName", "TestAndroid"); capabilities.setCapability("platformName", "Android"); capabilities.setCapability(CapabilityType.BROWSER_NAME, "browser"); capabilities.setCapability("platformVersion", "5.1"); driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities); driver.manage().timeouts().implicitlyWait(80, TimeUnit.SECONDS); driver.get("http://www.google.com"); WebElement keyword = driver.findElement(By.name("q")); keyword.sendKeys("abhishek yadav qa");
  • 13. [RECAP] Scripting using Appium for Mobile App Automation DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability("deviceName", "TestAndroid"); capabilities.setCapability("platformName", "Android"); capabilities.setCapability(CapabilityType.BROWSER_NAME, "Android"); capabilities.setCapability("platformVersion", "5.1"); capabilities.setCapability("appPackage", "com.android.calculator2"); capabilities.setCapability("appActivity","com.android.calculator2.Calculator "); driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities); driver.manage().timeouts().implicitlyWait(80, TimeUnit.SECONDS);
  • 14. [RECAP] Scripting using Appium for Mobile App Automation
  • 15. [RECAP] Framework Development using Appium  Apache Maven  Page Objects  TestNG  ReportNG  Allure  Cucumber (BDD)  Jenkins
  • 16. [RECAP] Appium for iOS Webdriver Controller Instruments Controller Instruments Command Server Unix Socket Server Instruments Command Client Unix Socket Client Instruments Bootstrap.js
  • 17. [RECAP] Appium iOS Automation
  • 18. [RECAP] Agenda  Appium Maven Project  Script Development within Maven Project  Locator Strategy for Android Web  Advance Locator Strategy for Android Web  Advance Locator Strategy for iOS App
  • 20. [RECAP] Script Development within Maven Project DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability("deviceName", "TestAndroid"); capabilities.setCapability("platformName", "Android"); capabilities.setCapability(CapabilityType.BROWSER_NAME, "browser"); capabilities.setCapability("platformVersion", "5.1"); driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities); driver.manage().timeouts().implicitlyWait(80, TimeUnit.SECONDS); driver.get("http://www.google.com"); WebElement keyword = driver.findElement(By.name("q")); keyword.sendKeys("abhishek yadav qa"); keyword.sendKeys(Keys.ENTER);
  • 21. [RECAP] Locator Strategy for Android  Id  Name  css selector  xpath  //android.widget.TextView[@resource- id='com.apptivateme.next.ct:id/tvVideoTime']  //android.widget.ImageView[@resource- id='com.apptivateme.next.ct:id/search_close_btn']  //android.widget.FrameLayout[@resource- id='com.apptivateme.next.ct:id/transparent_spacer_passthrough']
  • 22. [RECAP] Advanced Locator Strategies Android  MobileBy  ByAccessibilityId  ByAndroidUIAutomator
  • 23. [RECAP] MobileBy DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability("deviceName", "TestAndroid"); capabilities.setCapability("platformName", "Android"); capabilities.setCapability(CapabilityType.BROWSER_NAME, "Android"); capabilities.setCapability("platformVersion", "5.1"); capabilities.setCapability("appPackage", "com.android.calculator2"); capabilities.setCapability("appActivity","com.android.calculator2.Calculator"); driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities); driver.manage().timeouts().implicitlyWait(80, TimeUnit.SECONDS); driver.findElement(MobileBy.name("4")).click();
  • 24. [RECAP] ByAccessibilityId DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability("deviceName", "TestAndroid"); capabilities.setCapability("platformName", "Android"); capabilities.setCapability(CapabilityType.BROWSER_NAME, "Android"); capabilities.setCapability("platformVersion", "5.1"); capabilities.setCapability("appPackage", "com.android.calculator2"); capabilities.setCapability("appActivity","com.android.calculator2.Calculator"); driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities); driver.manage().timeouts().implicitlyWait(80, TimeUnit.SECONDS); driver.findElement(MobileBy.name("4")).click(); driver.findElement(MobileBy.AccessibilityId("delete")).click();
  • 25. [RECAP] ByAndroidUIAutomator DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability("deviceName", "TestAndroid"); capabilities.setCapability("platformName", "Android"); capabilities.setCapability(CapabilityType.BROWSER_NAME, "Android"); capabilities.setCapability("platformVersion", "5.1"); capabilities.setCapability("appPackage", "com.android.calculator2"); capabilities.setCapability("appActivity","com.android.calculator2.Calculator"); driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities); driver.manage().timeouts().implicitlyWait(80, TimeUnit.SECONDS); driver.findElement(MobileBy.AndroidUIAutomator("new UiSelector().text("3")")).click();
  • 27. [RECAP] Locator Strategy for iOS  Id  Name  css selector  xpath  //UIAApplication[1]/UIAWindow[1]/UIASearchBar[1]/UIASearchBar[1]
  • 29. [RECAP] Advance Locator Strategy for iOS  IosUIAutomation driver.findElementByIosUIAutomation ("tableViews()[0].cells(1).textViews() .firstWithPredicate("name == New Delhi And NCR")"); https://discuss.appium.io/t/how-to-use-findelements-byiosuiautomation/607
  • 30. Agenda  Install Appium using NPM  Start Appium Server from command line  Command line Arguments for Appium  Features of New Appium Client  Live practical to automate Twitter Mobile App  Live practical to automate Facebook Mobile App  Best practices for framework development using Appium and Java
  • 31. Appium using NPM and CLI  npm install –g appium  appium https://github.com/appium/appium/blob/master/docs/en/writing-running- appium/caps.md
  • 32. Appium Live Demo  Twitter  Facebook
  • 33. Features of New Appium Client
  • 34. Best practices for framework development
  • 35. References  http://appium.io/  https://appium.io/slate/en/tutorial/android.html  https://github.com/appium/appium  https://wiki.saucelabs.com/display/DOCS/Getting+Started+with+Appium+ for+Mobile+Native+Application+Testing  https://github.com/appium/appium-desktop  http://testng.org/doc/  https://maven.apache.org/