SlideShare a Scribd company logo
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

PPTX
Appium overview
PDF
Getting started with appium
PPTX
Appium ppt
PPTX
Automation With Appium
PDF
Appium: Automation for Mobile Apps
PPTX
Appium Presentation
PPT
Appium
PPTX
Automation testing on ios platform using appium
Appium overview
Getting started with appium
Appium ppt
Automation With Appium
Appium: Automation for Mobile Apps
Appium Presentation
Appium
Automation testing on ios platform using appium

What's hot (20)

PPTX
Automation Testing With Appium
PDF
Introduction To Mobile-Automation
PDF
Appium basics
PPT
Android & iOS Automation Using Appium
PDF
Mobile Test Automation - Appium
PDF
Mobile Testing with Appium
PPTX
API Automation Testing Using RestAssured+Cucumber
PDF
What is Appium? Edureka
PPT
Mobile Application Testing Strategy
PPTX
Mobile application testing
PPTX
Mobile automation using Appium
PPTX
Automation using Appium
PDF
How to Automate API Testing
PPTX
Test Automation and Selenium
PPTX
Mobile Application Testing
PPTX
Data driven Automation Framework with Selenium
PPTX
Api Testing
PPTX
Mobile Application Testing Training Presentation
PPTX
Mobile application testing tutorial
PDF
Appium, Test-Driven Development, and Continuous Integration
Automation Testing With Appium
Introduction To Mobile-Automation
Appium basics
Android & iOS Automation Using Appium
Mobile Test Automation - Appium
Mobile Testing with Appium
API Automation Testing Using RestAssured+Cucumber
What is Appium? Edureka
Mobile Application Testing Strategy
Mobile application testing
Mobile automation using Appium
Automation using Appium
How to Automate API Testing
Test Automation and Selenium
Mobile Application Testing
Data driven Automation Framework with Selenium
Api Testing
Mobile Application Testing Training Presentation
Mobile application testing tutorial
Appium, Test-Driven Development, and Continuous Integration
Ad

Similar to Mobile Automation with Appium (20)

PDF
A Comprehensive Guide to Cross-Platform Mobile Test Automation Using Appium.pdf
PDF
A Step-by-Step Guide to Test Automation with Appium.pdf
PPTX
appiumpresent-211128171811.pptx projet de presentation
PPTX
How to Leverage Appium in Your Mobile App Testing
 
PPTX
Mobile automation testing with selenium and appium
PDF
The Present and Future of Mobile Test Automation with Appium
PDF
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
PPTX
Next level of Appium
PDF
Automating Mobile Web Browsers with Appium.pdf
PDF
Automated Mobile Testing using Appium.pdf
PDF
Appium understanding document
PDF
Appium Introduction
PDF
Appium Automation Testing Tutorial PDF: Learn Mobile Testing in 7 Days
PDF
How to Test Android and iOS Mobile Apps with Appium.pdf
PPTX
Appium - test automation for mobile apps
PPTX
Automation using Javascript
PPTX
Appium Overview - by Daniel Puterman
PPTX
Appium an introduction
PPTX
Appium overview (Selenium Israel #2, Feb. 2014)
PPTX
Appium.pptx
A Comprehensive Guide to Cross-Platform Mobile Test Automation Using Appium.pdf
A Step-by-Step Guide to Test Automation with Appium.pdf
appiumpresent-211128171811.pptx projet de presentation
How to Leverage Appium in Your Mobile App Testing
 
Mobile automation testing with selenium and appium
The Present and Future of Mobile Test Automation with Appium
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
Next level of Appium
Automating Mobile Web Browsers with Appium.pdf
Automated Mobile Testing using Appium.pdf
Appium understanding document
Appium Introduction
Appium Automation Testing Tutorial PDF: Learn Mobile Testing in 7 Days
How to Test Android and iOS Mobile Apps with Appium.pdf
Appium - test automation for mobile apps
Automation using Javascript
Appium Overview - by Daniel Puterman
Appium an introduction
Appium overview (Selenium Israel #2, Feb. 2014)
Appium.pptx
Ad

More from Manoj Kumar Kumar (12)

PPTX
Tips from the trenches Accessibility Testing
PDF
Observability: Distributed Tes environment
PPTX
Selenium-4-and-appium-2
PPTX
Selenium-4
PPTX
GAAD-Deque-Accessibility-webinar
PDF
Scaling your Automated Tests: Docker and Kubernetes
PDF
Testing for Inclusive Web: Accessibility
PDF
Automated-Testing-inside-containers
PDF
Test Automation Infrastructure with Containers
PDF
Automated-Accessibility-Testing
PPTX
Async webdriverjs
PPTX
Automated Testing with Google Chrome - WebDriver- ChromeDriver
Tips from the trenches Accessibility Testing
Observability: Distributed Tes environment
Selenium-4-and-appium-2
Selenium-4
GAAD-Deque-Accessibility-webinar
Scaling your Automated Tests: Docker and Kubernetes
Testing for Inclusive Web: Accessibility
Automated-Testing-inside-containers
Test Automation Infrastructure with Containers
Automated-Accessibility-Testing
Async webdriverjs
Automated Testing with Google Chrome - WebDriver- ChromeDriver

Recently uploaded (20)

PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
Softaken Excel to vCard Converter Software.pdf
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PPT
Introduction Database Management System for Course Database
PPTX
L1 - Introduction to python Backend.pptx
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
 
PPTX
CHAPTER 2 - PM Management and IT Context
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PPTX
ManageIQ - Sprint 268 Review - Slide Deck
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PPTX
Online Work Permit System for Fast Permit Processing
Adobe Illustrator 28.6 Crack My Vision of Vector Design
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
Which alternative to Crystal Reports is best for small or large businesses.pdf
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
How to Choose the Right IT Partner for Your Business in Malaysia
Softaken Excel to vCard Converter Software.pdf
Design an Analysis of Algorithms I-SECS-1021-03
Introduction Database Management System for Course Database
L1 - Introduction to python Backend.pptx
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
 
CHAPTER 2 - PM Management and IT Context
VVF-Customer-Presentation2025-Ver1.9.pptx
ManageIQ - Sprint 268 Review - Slide Deck
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Navsoft: AI-Powered Business Solutions & Custom Software Development
Online Work Permit System for Fast Permit Processing

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

  • #5: 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.
  • #6: 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.