SlideShare a Scribd company logo
01 Introduction
Agenda
02 Appium Concepts
03
04
05
06
07
08
09
10
11
Types of Mobile Applications
Why Appium?
JSON Wire Protocol
Appium Architecture
Locators
Appium Features
Appium Philosophy
Pros & Cons
Future of Appium
Introduction
What is Appium ?
Appium is an open-source, cross
platform tool for automated testing
of native, mobile web, and hybrid
application on IOS, Android, and
windows desktop platforms.
Appium Concepts
Client-Server Architecture: Appium is at it’s heart a webserver that exposes a Rest API. It receives connections
from a client, listens for commands, executes those commands on a mobile device, and responds with an HTTP
responses representing the result of the command execution.
Appium Session: Appium is always performed in the context of a session. Clients initiate a session with a server
in ways specific to each library, but they all end up sending a POST / session request to the server, with a JSON
object called the ‘desired capabilities’ object.
Desired Capabilities: It is a set of key-value pairs sent to the Appium server to tell the server what kind of
automation session we’re interested in starting up. There are also various capabilities which can modify the
behaviour of the server during automation.
Types Of
Mobile
Applications
Web Applications
Native Applications
Hybrid Applications
Web Applications
A Web Applications is an app
like any other, with the advantage
that it’s stored on the internet and
can be executed on any browser.
Advantages Of Web Applications
Examples Of Web Applications
Native Applications
A Native Applications is a
software program that is
developed for use on a particular
platform or device.
Advantages Of Native Applications
Examples Of Native Applications
Hybrid Applications
A Hybrid Application is
technically a web app packed in a
native app container, like the web
app, it is written in HTML, CSS
and Javascript.
Advantages Of Hybrid Applications
Examples Of Hybrid Applications
Why Appium?
Why Appium ?
• Open Source Not only is Appium free of cost, but also open source. This means Appium
can be tweaked infinitely to work according to your twins.
• Cross-Platform Appium can test any mobile application whether it be a native one, a
hybrid one or even a web app. Whether the app works only on IOS or Android or even both,
Appium has you covered. Above that, Appium, itself can be installed on windows, Mac and
Linux.
• Framework Support Appium is a framework is also supported by various automation
testing tools out there. You shouldn’t be loced into a specific language or framework to
write and run your tests.
• Community A budding community is extremely necessary. An active community results in
faster bug and reports and easier troubleshooting which is key to the success of an
automation testing tool.
Why Choose Appium ?
Free and open source
Supports only android
Need app source code /
library
Small changes in Robotium
code leads to a complete
rebuild
Supports java only. Not
compatible with selenium at
all
Not such a proactive
community
Free and Open Source
Supports both iOS and android
No need for app source code
Doesn’t reinstall application
Support multiple frameworks
and programming languages
Strong and Active Community
Free and Open Source
Supports Only Android
Need for app source code
Supports only android 2.3-4.4
Compatible with selenium
and Jenkins
Community not as strong as
appium
JSON Wire
Protocol
JSON Wire Protocol
The JSON wire protocol (JSONWP) is a transport mechanism created by webdriver
developers. This wire protocol is a specific set of predefined, standardized endpoints
exposed via a RESTful API.
JSON
OBJECT
{Key} : {Value}
Client
Server
Session
Web Element
COOKIE | CAPABILITIES | LOGS | PROXY OBJECTS
Appium
Architecture
Architecture
• Appium is an HTTP server which is written in Node JS that creates and handles
WebDriver session. Its Architecture is similar as Selenium WebDriver Server.
• Appium Architecture is different from Android to iOS.
• The fact that we have a client/server architecture opens up a lot of possibilities: we
can write our test code in any language that has a http client API, but it is easier to
use one of the Appium client libraries. We can put the server on a different
machine than our tests are running on.
• The results of the test session are then communicated to the server and then back
to the client system in terms of logs, using the mobile JSON wire Protocol.
Appium Android
Architecture
Appium IOS
Architecture
Locators
Locators
Identifying or locating the elements on the web or mobile using its value or property is known as locator.
Below are the locator types to find element using find_element() and find_elements() :
• id
• className
• text
• By Index number
• By Content-description
• xpath
There are two types of Xpaths :
• Relative Xpath
• Absolute Xpath
Appium Features
Appium Features
 Supports WebDriver Protocol: WebDriver Protocol gives a better control over web UI Automation without
interrupting with the JS running on the page. Appium still is backwards compatible with the JSON wire
protocol.
 Robust Test Execution: Appium can easily tests regardless of device being locally available or being on a
remote server. The tests can be monitored in real-time as well.
 Multi-Platform Support: Appium can execute test cases across multiple platforms. As of now Appium
supports android, iOS and windows applications.
 Supports Old Android Versions through Selendroid: Support for older android versions(version 4.1 and
below) can be achieved through Selendroid driver.
 Parallel Execution: Appium enables users to execute test automation scripts on multiple android or iOS
sessions. This can be achieved using UIAutomator, UIAutomation and Xcode9.
Appium Philosophy
• A Mobile automation framework shouldn’t reinvent the wheel when it
comes to automation APIs.
• A Mobile automation framework should be open source, in spirit and
practice as well as in name.
• You shouldn’t have to recompile your app or modify it in any way in order
to automate it.
• You shouldn’t be loced into a specific language or framework to write and
run your tests.
System
Requirements
Android
• Java (version 8 or later)
• Android SDK API (version 17 or later)
• Android Virtual Device (AVD) or real device
• Node and npm
IOS
Xcode (greater than or equal to 4.6.3; 5.1 is
recommended) with the command-line built tool
• Mac OS X 10.7 or later
• Java version 8 or later
• Homebrew
• Node and npm
Setup For Appium
Advanced
Features
Download, Install and then Setup Appium for Windows:
1. Install JDK (Java Development Kit) set JDK path in windows
2. Install Android SDK (Software Development Kit) set SDK path in windows
3. Install Eclipse or Intellij
4. Install Appium and Appium desktop client
5. Configure Appium after installation
6. Install Node.js
7. Install Selenium server JAR
8. Appium client library (in Java, Ruby, Python, PHP, Javascript, and C#)
9. Add these files to Eclipse Project (or as Dependencies)
Advanced
Features
Getting Started:
Step1: Start Appium Server from terminal or by Appium desktop app.
Step2: Start Eclipse or any other IDE
Create New Project
Add Dependencies in the project
Language client Library (i.e. Java)
Selenium Libraries (To use webDriver)
Step3: Add Desired Capabilities in Java code for selenium server
Step4: Find Object’s ID in App by UIAutomator or UIAutomatorViewer.
Use these ID values of respective elements in code to test your app accordingly.
Pros & Cons
Pros & Cons
Pros:
• Cross-platform support for Android and iOS
• Open-source and has a large developer community
• Supports multiple programming languages
• Supports multiple testing frameworks
• Easy setup
Cons:
• Limited support for non-mobile platforms
• Limited support for testing mobile web applications
• Requires access to the source code of the app for testing
• Some features may not be available on certain versions of iOS or Android
• Can be slow and resource-intensive when running tests.
Future Of Appium
Appium has a large and active community of developers, which means that it is
likely to continue to evolve and improve over time. Additionally, as mobile
devices and operating systems continue to evolve, Appium will need to adapt to
support these changes.
In conclusion, while it's impossible to predict the future with certainty, it's
reasonable to assume that Appium will remain a relevant and valuable tool for
mobile application test automation in the coming years.
Future Of Appium
Advanced
Features

More Related Content

Appium.pptx

  • 1. 01 Introduction Agenda 02 Appium Concepts 03 04 05 06 07 08 09 10 11 Types of Mobile Applications Why Appium? JSON Wire Protocol Appium Architecture Locators Appium Features Appium Philosophy Pros & Cons Future of Appium
  • 3. What is Appium ? Appium is an open-source, cross platform tool for automated testing of native, mobile web, and hybrid application on IOS, Android, and windows desktop platforms.
  • 5. Client-Server Architecture: Appium is at it’s heart a webserver that exposes a Rest API. It receives connections from a client, listens for commands, executes those commands on a mobile device, and responds with an HTTP responses representing the result of the command execution. Appium Session: Appium is always performed in the context of a session. Clients initiate a session with a server in ways specific to each library, but they all end up sending a POST / session request to the server, with a JSON object called the ‘desired capabilities’ object. Desired Capabilities: It is a set of key-value pairs sent to the Appium server to tell the server what kind of automation session we’re interested in starting up. There are also various capabilities which can modify the behaviour of the server during automation.
  • 6. Types Of Mobile Applications Web Applications Native Applications Hybrid Applications
  • 7. Web Applications A Web Applications is an app like any other, with the advantage that it’s stored on the internet and can be executed on any browser. Advantages Of Web Applications Examples Of Web Applications
  • 8. Native Applications A Native Applications is a software program that is developed for use on a particular platform or device. Advantages Of Native Applications Examples Of Native Applications
  • 9. Hybrid Applications A Hybrid Application is technically a web app packed in a native app container, like the web app, it is written in HTML, CSS and Javascript. Advantages Of Hybrid Applications Examples Of Hybrid Applications
  • 11. Why Appium ? • Open Source Not only is Appium free of cost, but also open source. This means Appium can be tweaked infinitely to work according to your twins. • Cross-Platform Appium can test any mobile application whether it be a native one, a hybrid one or even a web app. Whether the app works only on IOS or Android or even both, Appium has you covered. Above that, Appium, itself can be installed on windows, Mac and Linux. • Framework Support Appium is a framework is also supported by various automation testing tools out there. You shouldn’t be loced into a specific language or framework to write and run your tests. • Community A budding community is extremely necessary. An active community results in faster bug and reports and easier troubleshooting which is key to the success of an automation testing tool.
  • 12. Why Choose Appium ? Free and open source Supports only android Need app source code / library Small changes in Robotium code leads to a complete rebuild Supports java only. Not compatible with selenium at all Not such a proactive community Free and Open Source Supports both iOS and android No need for app source code Doesn’t reinstall application Support multiple frameworks and programming languages Strong and Active Community Free and Open Source Supports Only Android Need for app source code Supports only android 2.3-4.4 Compatible with selenium and Jenkins Community not as strong as appium
  • 14. JSON Wire Protocol The JSON wire protocol (JSONWP) is a transport mechanism created by webdriver developers. This wire protocol is a specific set of predefined, standardized endpoints exposed via a RESTful API. JSON OBJECT {Key} : {Value} Client Server Session Web Element COOKIE | CAPABILITIES | LOGS | PROXY OBJECTS
  • 16. Architecture • Appium is an HTTP server which is written in Node JS that creates and handles WebDriver session. Its Architecture is similar as Selenium WebDriver Server. • Appium Architecture is different from Android to iOS. • The fact that we have a client/server architecture opens up a lot of possibilities: we can write our test code in any language that has a http client API, but it is easier to use one of the Appium client libraries. We can put the server on a different machine than our tests are running on. • The results of the test session are then communicated to the server and then back to the client system in terms of logs, using the mobile JSON wire Protocol.
  • 20. Locators Identifying or locating the elements on the web or mobile using its value or property is known as locator. Below are the locator types to find element using find_element() and find_elements() : • id • className • text • By Index number • By Content-description • xpath There are two types of Xpaths : • Relative Xpath • Absolute Xpath
  • 22. Appium Features  Supports WebDriver Protocol: WebDriver Protocol gives a better control over web UI Automation without interrupting with the JS running on the page. Appium still is backwards compatible with the JSON wire protocol.  Robust Test Execution: Appium can easily tests regardless of device being locally available or being on a remote server. The tests can be monitored in real-time as well.  Multi-Platform Support: Appium can execute test cases across multiple platforms. As of now Appium supports android, iOS and windows applications.  Supports Old Android Versions through Selendroid: Support for older android versions(version 4.1 and below) can be achieved through Selendroid driver.  Parallel Execution: Appium enables users to execute test automation scripts on multiple android or iOS sessions. This can be achieved using UIAutomator, UIAutomation and Xcode9.
  • 23. Appium Philosophy • A Mobile automation framework shouldn’t reinvent the wheel when it comes to automation APIs. • A Mobile automation framework should be open source, in spirit and practice as well as in name. • You shouldn’t have to recompile your app or modify it in any way in order to automate it. • You shouldn’t be loced into a specific language or framework to write and run your tests.
  • 25. Android • Java (version 8 or later) • Android SDK API (version 17 or later) • Android Virtual Device (AVD) or real device • Node and npm IOS Xcode (greater than or equal to 4.6.3; 5.1 is recommended) with the command-line built tool • Mac OS X 10.7 or later • Java version 8 or later • Homebrew • Node and npm
  • 27. Advanced Features Download, Install and then Setup Appium for Windows: 1. Install JDK (Java Development Kit) set JDK path in windows 2. Install Android SDK (Software Development Kit) set SDK path in windows 3. Install Eclipse or Intellij 4. Install Appium and Appium desktop client 5. Configure Appium after installation 6. Install Node.js 7. Install Selenium server JAR 8. Appium client library (in Java, Ruby, Python, PHP, Javascript, and C#) 9. Add these files to Eclipse Project (or as Dependencies)
  • 28. Advanced Features Getting Started: Step1: Start Appium Server from terminal or by Appium desktop app.
  • 29. Step2: Start Eclipse or any other IDE Create New Project Add Dependencies in the project Language client Library (i.e. Java) Selenium Libraries (To use webDriver)
  • 30. Step3: Add Desired Capabilities in Java code for selenium server Step4: Find Object’s ID in App by UIAutomator or UIAutomatorViewer. Use these ID values of respective elements in code to test your app accordingly.
  • 32. Pros & Cons Pros: • Cross-platform support for Android and iOS • Open-source and has a large developer community • Supports multiple programming languages • Supports multiple testing frameworks • Easy setup Cons: • Limited support for non-mobile platforms • Limited support for testing mobile web applications • Requires access to the source code of the app for testing • Some features may not be available on certain versions of iOS or Android • Can be slow and resource-intensive when running tests.
  • 34. Appium has a large and active community of developers, which means that it is likely to continue to evolve and improve over time. Additionally, as mobile devices and operating systems continue to evolve, Appium will need to adapt to support these changes. In conclusion, while it's impossible to predict the future with certainty, it's reasonable to assume that Appium will remain a relevant and valuable tool for mobile application test automation in the coming years. Future Of Appium