SlideShare a Scribd company logo
1 of 43
Mobile Automation with Appium
Manoj Kumar
About Me
✓Open Source Enthusiast
(Selenium, ngWebdriver, Serenity, Protractor et..)
✓Author assertselenium.com & official documentation of Selenium
✓Organizer & Program Chair seleniumconf.com
✓Member of Project Leadership committee - Selenium
✓Accessibility enthusiast
✓I work at Applitools AI-POWERED VISUAL TESTING AND MONITORING
Today’s Session
✓Challenges of Mobile Automated testing
✓Getting started with Automated Mobile Testing -Appium
✓Advanced features and unique capabilities
✓Scaling your Appium tests
✓State of Mobile Automation testing tools
✓& More
TOO MANY
DEVICES
+
BROWSER
COMBINATIONS
TO TEST
TEST MATRIX IS
TOO BIG
TO COVER
MANUALLY
RELEASE
CYCLES
KEEP GETTING
SHORTER
CI-CD PROCESSES DEMAND
AUTOMATION
AND
ZERO
MANUAL BOTTLENECKS
Automate it!
Challenges - Mobile Automation
• Validate every OS version your app supports
• Validate every locale your app supports
• Validate different device manufacturers
• Validate performance of your mobile apps
• Simulator vs Real Device differences
Tools / Frameworks
Be Honest
Detox
WDA
Tool Stack
Appium
Appium Philosophy
• Test the Same app you submit to the marketplace
• Write automated tests in any language / framework
• An open-source mobile automation framework
• Come up With your own driver implementation
Appium
• Appium is a HTTP server that creates and handles WebDriver session
through Mobile JSON WP
Appium Architecture
• Similar to WebDriver Server
• A Client-Server architecture
• Server - Node Js
• Client - your Automated Scripts
• Receive request from Client > Executes commands on devices/emulators
> A HTTP response is responded
Appium Architecture
• When you download Appium Desktop or install via npm - you’re just
downloading or setting up the Server part of Appium
• When you write an automated Appium Script and execute it, a HTTP
request in JSON format is sent to Server
• Appium sends the commands to iOS and Android platform in a way that it
understands via bootstrap- which acts as a Unix/TCP server
Appium in a Nutshell
Appium Landscape
Source: Jonathan Lipps- CloudGrey
Appium Requirements
• Appium via npm server
• Driver Specific Setup
• XCUITest Driver - iOS
• Mac, Xcode > 7, XCUITest library
• UiAutomator2 Driver( EspressoDriver at it Beta Stage) - Android
• Java 7, Android SDK
• Windows Driver - Win Desktop Apps
• Mac Driver - Mac Desktop Apps
Appium Server
Appium Driver Service
Desired Capabilities
Appium Inspector
Advanced Appium Actions
Name Some please?
Horizontal Swiping
Thanks - Srinivasan & Sai
Vertical Swiping
Vertical Swiping
Thanks - Srinivasan & Sai
Chained Locators
Any Possible
Thanks - Srinivasan & Sai
Tips & Tricks
• No XPath
• Use Predicates in iOS
• Appium is slow
• Stability over speed
• No Docs
Performance Testing for Mobile apps
• Mobile apps are usually run in a very constrained environment
• Mobile apps have the potential to create bad user experience not only from
UI perspective but also by jamming CPU or memory and shown as a
“battery draining app”
• At least with Android
• dumpsys is a tool that runs on Android devices and provides information
about services and can be used wth Android Debug Bridge
• Allow you to check how your application affects the overall device through
CPU, RAM, Battery, storage stats
List<List<Object>> data =
driver.getPerformanceData("io.appium.android.apis", "memoryinfo",
10);
Performance Testing with Appium
Visual Testing for mobile Apps
• Validate if your app looks same on different screen sizes, different
manufacturers
• How will your app layout or structure looks when used in different language
which has long strings like Deutsch
• Consider testing in Landscape mode
AI-POWERED VISUAL TESTING AND MONITORING
Accessibility Testing for Mobile Apps
• All activatable elements should be focusable
• The user flow on the screen should be from top to bottom and left to right.
The flow throughout the app should be intuitive.
Accessibility testing with Espresso
• Accessibility Test framework from Google - Plugged into any Java
framework
• Espresso:
import android.support.test.espresso.contrib.AccessibilityChecks;
@RunWith(AndroidJUnit4.class)
@LargeTest
public class AccessibilityChecksIntegrationTest {
@BeforeClass
public static void enableAccessibilityChecks() {
AccessibilityChecks.enable();
}
}
Scaling Mobile Automation
Scaling Mobile Automation
• Dockerize Appium Tests - Easy Parallel tests
• Docker based Setup
• https://github.com/butomo1989/docker-android
• https://github.com/appium/appium-docker-android
• No more worry about requirements
• Comes pre-built in a docker image
• Build an Image and execute it!
Scaling Mobile Automation
• Appium Test Distribution
• Appium Device Manager
• Remote Appium Manager
Video Demo
Mobile Automation landscape
Mobile Testing tools-Landscape
Questions
Thank you!

More Related Content

What's hot

Automation With Appium
Automation With AppiumAutomation With Appium
Automation With AppiumKnoldus Inc.
 
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
 
Introduction To Appium With Robotframework
Introduction To Appium With RobotframeworkIntroduction To Appium With Robotframework
Introduction To Appium With RobotframeworkSyam Sasi
 
Automation Testing With Appium
Automation Testing With AppiumAutomation Testing With Appium
Automation Testing With AppiumKnoldus Inc.
 
Appium, Test-Driven Development, and Continuous Integration
Appium, Test-Driven Development, and Continuous IntegrationAppium, Test-Driven Development, and Continuous Integration
Appium, Test-Driven Development, and Continuous IntegrationTechWell
 
Mobile Application Testing
Mobile Application TestingMobile Application Testing
Mobile Application TestingSWAAM Tech
 
Mobile Application Testing Strategy
Mobile Application Testing StrategyMobile Application Testing Strategy
Mobile Application Testing StrategyankitQA
 
Mobile Testing with Appium
Mobile Testing with AppiumMobile Testing with Appium
Mobile Testing with AppiumKnoldus Inc.
 
Mobile Application Testing by Javed Ansari
Mobile Application Testing by Javed AnsariMobile Application Testing by Javed Ansari
Mobile Application Testing by Javed AnsariJaved Ansari
 
Test automation
Test automationTest automation
Test automationXavier Yin
 
Appium Presentation
Appium Presentation Appium Presentation
Appium Presentation OmarUsman6
 
Automated Mobile Testing using Appium.pdf
Automated Mobile Testing using Appium.pdfAutomated Mobile Testing using Appium.pdf
Automated Mobile Testing using Appium.pdfAnand722237
 
Mobile Application Testing Training Presentation
Mobile Application Testing Training PresentationMobile Application Testing Training Presentation
Mobile Application Testing Training PresentationMobiGnosis
 
Mobile App Testing Strategy by RapidValue Solutions
Mobile App Testing Strategy by RapidValue SolutionsMobile App Testing Strategy by RapidValue Solutions
Mobile App Testing Strategy by RapidValue SolutionsRapidValue
 
Test Automation and Selenium
Test Automation and SeleniumTest Automation and Selenium
Test Automation and SeleniumKarapet Sarkisyan
 

What's hot (20)

Automation With Appium
Automation With AppiumAutomation With Appium
Automation With Appium
 
Appium ppt
Appium pptAppium ppt
Appium ppt
 
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
 
Introduction To Appium With Robotframework
Introduction To Appium With RobotframeworkIntroduction To Appium With Robotframework
Introduction To Appium With Robotframework
 
Automation Testing With Appium
Automation Testing With AppiumAutomation Testing With Appium
Automation Testing With Appium
 
Appium, Test-Driven Development, and Continuous Integration
Appium, Test-Driven Development, and Continuous IntegrationAppium, Test-Driven Development, and Continuous Integration
Appium, Test-Driven Development, and Continuous Integration
 
Automation Testing
Automation TestingAutomation Testing
Automation Testing
 
Mobile Application Testing
Mobile Application TestingMobile Application Testing
Mobile Application Testing
 
Mobile Application Testing Strategy
Mobile Application Testing StrategyMobile Application Testing Strategy
Mobile Application Testing Strategy
 
Mobile Testing with Appium
Mobile Testing with AppiumMobile Testing with Appium
Mobile 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
 
Mobile Application Testing
Mobile Application TestingMobile Application Testing
Mobile Application Testing
 
Test automation
Test automationTest automation
Test automation
 
Automation using Appium
Automation using AppiumAutomation using Appium
Automation using Appium
 
Appium Presentation
Appium Presentation Appium Presentation
Appium Presentation
 
Appium
AppiumAppium
Appium
 
Automated Mobile Testing using Appium.pdf
Automated Mobile Testing using Appium.pdfAutomated Mobile Testing using Appium.pdf
Automated Mobile Testing using Appium.pdf
 
Mobile Application Testing Training Presentation
Mobile Application Testing Training PresentationMobile Application Testing Training Presentation
Mobile Application Testing Training Presentation
 
Mobile App Testing Strategy by RapidValue Solutions
Mobile App Testing Strategy by RapidValue SolutionsMobile App Testing Strategy by RapidValue Solutions
Mobile App Testing Strategy by RapidValue Solutions
 
Test Automation and Selenium
Test Automation and SeleniumTest Automation and Selenium
Test Automation and Selenium
 

Similar to Mobile Automation with Appium

Use Jenkins For Continuous Load Testing And Mobile Test Automation
Use Jenkins For Continuous Load Testing And Mobile Test AutomationUse Jenkins For Continuous Load Testing And Mobile Test Automation
Use Jenkins For Continuous Load Testing And Mobile Test AutomationClever Moe
 
STARWest: Use Jenkins For Continuous 
Load Testing And Mobile Test Automation
STARWest: Use Jenkins For Continuous 
Load Testing And Mobile Test AutomationSTARWest: Use Jenkins For Continuous 
Load Testing And Mobile Test Automation
STARWest: Use Jenkins For Continuous 
Load Testing And Mobile Test AutomationClever Moe
 
Mobile automation using selenium cucumber & appium
Mobile automation using selenium cucumber & appiumMobile automation using selenium cucumber & appium
Mobile automation using selenium cucumber & appiumSelenium Cucumber
 
Continuous Integration, Deploy, Test From Beginning To End 2014
Continuous Integration, Deploy, Test From Beginning To End 2014Continuous Integration, Deploy, Test From Beginning To End 2014
Continuous Integration, Deploy, Test From Beginning To End 2014Clever Moe
 
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
 
CS02A - Interacting with applications.pptx
CS02A - Interacting with applications.pptxCS02A - Interacting with applications.pptx
CS02A - Interacting with applications.pptxAnand722237
 
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 frameworkAndrea Tino
 
Advanced Appium: SeleniumConf UK 2016
Advanced Appium: SeleniumConf UK 2016Advanced Appium: SeleniumConf UK 2016
Advanced Appium: SeleniumConf UK 2016Dan Cuellar
 
Appium an introduction
Appium   an introductionAppium   an introduction
Appium an introductionVivek Shringi
 
Appium meet up noida
Appium meet up noidaAppium meet up noida
Appium meet up noidaAmit Rawat
 
Appurify presentation at Appium meetup - Running Appium on real devices at scale
Appurify presentation at Appium meetup - Running Appium on real devices at scaleAppurify presentation at Appium meetup - Running Appium on real devices at scale
Appurify presentation at Appium meetup - Running Appium on real devices at scaleJay Srinivasan
 
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
 
Using Selenium To Test Mobile? Meet Appium!
Using Selenium To Test Mobile? Meet Appium!Using Selenium To Test Mobile? Meet Appium!
Using Selenium To Test Mobile? Meet Appium!Sauce Labs
 
Mobile Application Testing
Mobile Application TestingMobile Application Testing
Mobile Application TestingSun Technlogies
 
Mobile Application Testing
Mobile Application Testing Mobile Application Testing
Mobile Application Testing Shivaraj R
 
Launch High Performing Mobile Apps with Appurify
Launch High Performing Mobile Apps with AppurifyLaunch High Performing Mobile Apps with Appurify
Launch High Performing Mobile Apps with AppurifyManish Lachwani
 
Appmotives - Software Testing As Service
Appmotives - Software Testing As ServiceAppmotives - Software Testing As Service
Appmotives - Software Testing As ServiceKalyan Paluri
 

Similar to Mobile Automation with Appium (20)

ATAGTR2017 Appium
ATAGTR2017 AppiumATAGTR2017 Appium
ATAGTR2017 Appium
 
Use Jenkins For Continuous Load Testing And Mobile Test Automation
Use Jenkins For Continuous Load Testing And Mobile Test AutomationUse Jenkins For Continuous Load Testing And Mobile Test Automation
Use Jenkins For Continuous Load Testing And Mobile Test Automation
 
STARWest: Use Jenkins For Continuous 
Load Testing And Mobile Test Automation
STARWest: Use Jenkins For Continuous 
Load Testing And Mobile Test AutomationSTARWest: Use Jenkins For Continuous 
Load Testing And Mobile Test Automation
STARWest: Use Jenkins For Continuous 
Load Testing And Mobile Test Automation
 
Appium.pptx
Appium.pptxAppium.pptx
Appium.pptx
 
Mobile automation using selenium cucumber & appium
Mobile automation using selenium cucumber & appiumMobile automation using selenium cucumber & appium
Mobile automation using selenium cucumber & appium
 
Continuous Integration, Deploy, Test From Beginning To End 2014
Continuous Integration, Deploy, Test From Beginning To End 2014Continuous Integration, Deploy, Test From Beginning To End 2014
Continuous Integration, Deploy, Test From Beginning To End 2014
 
Advanced Appium
Advanced AppiumAdvanced Appium
Advanced Appium
 
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
 
CS02A - Interacting with applications.pptx
CS02A - Interacting with applications.pptxCS02A - Interacting with applications.pptx
CS02A - Interacting with applications.pptx
 
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
 
Advanced Appium: SeleniumConf UK 2016
Advanced Appium: SeleniumConf UK 2016Advanced Appium: SeleniumConf UK 2016
Advanced Appium: SeleniumConf UK 2016
 
Appium an introduction
Appium   an introductionAppium   an introduction
Appium an introduction
 
Appium meet up noida
Appium meet up noidaAppium meet up noida
Appium meet up noida
 
Appurify presentation at Appium meetup - Running Appium on real devices at scale
Appurify presentation at Appium meetup - Running Appium on real devices at scaleAppurify presentation at Appium meetup - Running Appium on real devices at scale
Appurify presentation at Appium meetup - Running Appium on real devices at scale
 
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)
 
Using Selenium To Test Mobile? Meet Appium!
Using Selenium To Test Mobile? Meet Appium!Using Selenium To Test Mobile? Meet Appium!
Using Selenium To Test Mobile? Meet Appium!
 
Mobile Application Testing
Mobile Application TestingMobile Application Testing
Mobile Application Testing
 
Mobile Application Testing
Mobile Application Testing Mobile Application Testing
Mobile Application Testing
 
Launch High Performing Mobile Apps with Appurify
Launch High Performing Mobile Apps with AppurifyLaunch High Performing Mobile Apps with Appurify
Launch High Performing Mobile Apps with Appurify
 
Appmotives - Software Testing As Service
Appmotives - Software Testing As ServiceAppmotives - Software Testing As Service
Appmotives - Software Testing As Service
 

More from Manoj Kumar Kumar

Tips from the trenches Accessibility Testing
Tips from the trenches Accessibility TestingTips from the trenches Accessibility Testing
Tips from the trenches Accessibility TestingManoj Kumar Kumar
 
Observability: Distributed Tes environment
Observability: Distributed Tes environmentObservability: Distributed Tes environment
Observability: Distributed Tes environmentManoj Kumar Kumar
 
GAAD-Deque-Accessibility-webinar
GAAD-Deque-Accessibility-webinarGAAD-Deque-Accessibility-webinar
GAAD-Deque-Accessibility-webinarManoj Kumar Kumar
 
Scaling your Automated Tests: Docker and Kubernetes
Scaling your Automated Tests: Docker and KubernetesScaling your Automated Tests: Docker and Kubernetes
Scaling your Automated Tests: Docker and KubernetesManoj Kumar Kumar
 
Testing for Inclusive Web: Accessibility
Testing for Inclusive Web: AccessibilityTesting for Inclusive Web: Accessibility
Testing for Inclusive Web: AccessibilityManoj Kumar Kumar
 
Automated-Testing-inside-containers
Automated-Testing-inside-containersAutomated-Testing-inside-containers
Automated-Testing-inside-containersManoj Kumar Kumar
 
Test Automation Infrastructure with Containers
Test Automation Infrastructure with ContainersTest Automation Infrastructure with Containers
Test Automation Infrastructure with ContainersManoj Kumar Kumar
 
Automated-Accessibility-Testing
Automated-Accessibility-TestingAutomated-Accessibility-Testing
Automated-Accessibility-TestingManoj Kumar Kumar
 
Automated Testing with Google Chrome - WebDriver- ChromeDriver
Automated Testing with Google Chrome - WebDriver- ChromeDriverAutomated Testing with Google Chrome - WebDriver- ChromeDriver
Automated Testing with Google Chrome - WebDriver- ChromeDriverManoj Kumar Kumar
 

More from Manoj Kumar Kumar (12)

Tips from the trenches Accessibility Testing
Tips from the trenches Accessibility TestingTips from the trenches Accessibility Testing
Tips from the trenches Accessibility Testing
 
Observability: Distributed Tes environment
Observability: Distributed Tes environmentObservability: Distributed Tes environment
Observability: Distributed Tes environment
 
Selenium-4-and-appium-2
Selenium-4-and-appium-2Selenium-4-and-appium-2
Selenium-4-and-appium-2
 
Selenium-4
Selenium-4Selenium-4
Selenium-4
 
GAAD-Deque-Accessibility-webinar
GAAD-Deque-Accessibility-webinarGAAD-Deque-Accessibility-webinar
GAAD-Deque-Accessibility-webinar
 
Scaling your Automated Tests: Docker and Kubernetes
Scaling your Automated Tests: Docker and KubernetesScaling your Automated Tests: Docker and Kubernetes
Scaling your Automated Tests: Docker and Kubernetes
 
Testing for Inclusive Web: Accessibility
Testing for Inclusive Web: AccessibilityTesting for Inclusive Web: Accessibility
Testing for Inclusive Web: Accessibility
 
Automated-Testing-inside-containers
Automated-Testing-inside-containersAutomated-Testing-inside-containers
Automated-Testing-inside-containers
 
Test Automation Infrastructure with Containers
Test Automation Infrastructure with ContainersTest Automation Infrastructure with Containers
Test Automation Infrastructure with Containers
 
Automated-Accessibility-Testing
Automated-Accessibility-TestingAutomated-Accessibility-Testing
Automated-Accessibility-Testing
 
Async webdriverjs
Async webdriverjsAsync webdriverjs
Async webdriverjs
 
Automated Testing with Google Chrome - WebDriver- ChromeDriver
Automated Testing with Google Chrome - WebDriver- ChromeDriverAutomated Testing with Google Chrome - WebDriver- ChromeDriver
Automated Testing with Google Chrome - WebDriver- ChromeDriver
 

Recently uploaded

What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfLivetecs LLC
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....kzayra69
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noidabntitsolutionsrishis
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 

Recently uploaded (20)

What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdf
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 

Mobile Automation with Appium

  • 1. Mobile Automation with Appium Manoj Kumar
  • 2. About Me ✓Open Source Enthusiast (Selenium, ngWebdriver, Serenity, Protractor et..) ✓Author assertselenium.com & official documentation of Selenium ✓Organizer & Program Chair seleniumconf.com ✓Member of Project Leadership committee - Selenium ✓Accessibility enthusiast ✓I work at Applitools AI-POWERED VISUAL TESTING AND MONITORING
  • 3. Today’s Session ✓Challenges of Mobile Automated testing ✓Getting started with Automated Mobile Testing -Appium ✓Advanced features and unique capabilities ✓Scaling your Appium tests ✓State of Mobile Automation testing tools ✓& More
  • 4. TOO MANY DEVICES + BROWSER COMBINATIONS TO TEST TEST MATRIX IS TOO BIG TO COVER MANUALLY
  • 5. RELEASE CYCLES KEEP GETTING SHORTER CI-CD PROCESSES DEMAND AUTOMATION AND ZERO MANUAL BOTTLENECKS
  • 7. Challenges - Mobile Automation • Validate every OS version your app supports • Validate every locale your app supports • Validate different device manufacturers • Validate performance of your mobile apps • Simulator vs Real Device differences
  • 12. Appium Philosophy • Test the Same app you submit to the marketplace • Write automated tests in any language / framework • An open-source mobile automation framework • Come up With your own driver implementation
  • 13. Appium • Appium is a HTTP server that creates and handles WebDriver session through Mobile JSON WP
  • 14. Appium Architecture • Similar to WebDriver Server • A Client-Server architecture • Server - Node Js • Client - your Automated Scripts • Receive request from Client > Executes commands on devices/emulators > A HTTP response is responded
  • 15. Appium Architecture • When you download Appium Desktop or install via npm - you’re just downloading or setting up the Server part of Appium • When you write an automated Appium Script and execute it, a HTTP request in JSON format is sent to Server • Appium sends the commands to iOS and Android platform in a way that it understands via bootstrap- which acts as a Unix/TCP server
  • 16. Appium in a Nutshell
  • 19. Appium Requirements • Appium via npm server • Driver Specific Setup • XCUITest Driver - iOS • Mac, Xcode > 7, XCUITest library • UiAutomator2 Driver( EspressoDriver at it Beta Stage) - Android • Java 7, Android SDK • Windows Driver - Win Desktop Apps • Mac Driver - Mac Desktop Apps
  • 25. Horizontal Swiping Thanks - Srinivasan & Sai
  • 27. Vertical Swiping Thanks - Srinivasan & Sai
  • 29. Any Possible Thanks - Srinivasan & Sai
  • 30. Tips & Tricks • No XPath • Use Predicates in iOS • Appium is slow • Stability over speed • No Docs
  • 31. Performance Testing for Mobile apps • Mobile apps are usually run in a very constrained environment • Mobile apps have the potential to create bad user experience not only from UI perspective but also by jamming CPU or memory and shown as a “battery draining app”
  • 32. • At least with Android • dumpsys is a tool that runs on Android devices and provides information about services and can be used wth Android Debug Bridge • Allow you to check how your application affects the overall device through CPU, RAM, Battery, storage stats List<List<Object>> data = driver.getPerformanceData("io.appium.android.apis", "memoryinfo", 10); Performance Testing with Appium
  • 33. Visual Testing for mobile Apps • Validate if your app looks same on different screen sizes, different manufacturers • How will your app layout or structure looks when used in different language which has long strings like Deutsch • Consider testing in Landscape mode
  • 34. AI-POWERED VISUAL TESTING AND MONITORING
  • 35. Accessibility Testing for Mobile Apps • All activatable elements should be focusable • The user flow on the screen should be from top to bottom and left to right. The flow throughout the app should be intuitive.
  • 36. Accessibility testing with Espresso • Accessibility Test framework from Google - Plugged into any Java framework • Espresso: import android.support.test.espresso.contrib.AccessibilityChecks; @RunWith(AndroidJUnit4.class) @LargeTest public class AccessibilityChecksIntegrationTest { @BeforeClass public static void enableAccessibilityChecks() { AccessibilityChecks.enable(); } }
  • 38. Scaling Mobile Automation • Dockerize Appium Tests - Easy Parallel tests • Docker based Setup • https://github.com/butomo1989/docker-android • https://github.com/appium/appium-docker-android • No more worry about requirements • Comes pre-built in a docker image • Build an Image and execute it!
  • 39. Scaling Mobile Automation • Appium Test Distribution • Appium Device Manager • Remote Appium Manager

Editor's Notes

  1. Unlike 5 or 10 years ago in todays world, when testing a web or mobile app - whether native or responsive, it’s important to be able to test on all devices and browsers. The problem is, there are simply too many device and browser combinations. Chrome, Firefox, IE, Safari, each one has multiple versions that customers may be using, on different devices (PC, MAC, Mobile Devices, Smart watches) Running on different operating systems (Windows, Linux, IOS, Android etc.) and in different screen resolutions according to the device. In some cases the application under test may also have responsive design to optimize the layout according to the viewable portion of the screen. In these cases we also need to check the app across the different layouts. While there are tools that let you test on a wide variety of devices, there is no automated testing tool that can see that the app looks and acts right on all devices. So someone still manually goes through each and every device, to ensure that everything is displaying properly. This causes major bottlenecks which adds cost to the dev process.
  2. On top of that we also know that release cycle are keep getting shorter and shorter. Many organisations already have CI in place and some already has full CD. It simply means that everything must be automated has we have zero time for manual bottle necks. So, we have more and more things that we need to cover and less and less time to do it.