Appium
Philosophy
Appium is built on the principle that testing native
apps should not require an SDK on app recompiling. And that you should be able
to use your preferred test practices, frameworks, and tools. Appium is an open
source project and has made design and tool decisions to encourage a vibrant
contributing community.
Appium was designed to meet the demands of the mobile
automation as per the philosophy outlined by the following four tenets, thus
summarizing:
1.
Automation
of the app is possible even if it is not recompiled or modified.
2.
There
should not be a language barrier.
3.
The
mobile automation framework should not be reinventing the wheel when it comes
to automation APIs.
4.
It
should be open source
Types
of mobile apps that Appium supports
Native: These are built using the iOS, Android or
Windows SDKs. They are integrated to a platform or device.
Hybrid: These are web applications that have been
developed using wrapper, CSS, HTML of a native application on top of UIWeb View
for iOS and webview for Android Apps.
Mobile web apps: These are web apps that are accessed
using a mobile browser.
Concepts
of Appium
Appium is a webserver that actually exposes a REST
API. Aftre receiving connection from a client, it listens to commands, executes
those commands and responds with an HTTP response, representing the results of
the command execution.
Automation is always performed in the context of a
session. Clients initiate a session with a server in ways that are specific to
each library. However, a POST/session request to the server is sent, with a
JSON object called the ‘desired capabilities’ object. At this point, the server
will start the automation session and respond with a session ID, which is used
for sending further commands.
Desired capabilities are a set of keys and values that
are sent to the Appium server to tell the server what kind of automation
session we are interested in starting up. There are also capabilities that ca
modify the behaviour of the server during automation.
Mobile
web automation
Appium is said to support automating the Chrome
browser on both real and emulated Android devices. However, here are a few
pre-requisites:
- It has to be ensured that Chrome is installed on the device or the emulator
- Chromedriver needs to be installed and configured for automating the specific version of Chrome that is available on the device
Clients
of Appium
The client libraries that support Appium include Java,
Ruby, Python, JavaScript, PHP, and C+. These support Appium’s extensions to the
WebDriver protocol. While using Appium for mobile automation testing, these
client libraries have to be used, instead of a regular WebDriver client.
QualiTest Group
is the world’s largest software testing and quality assurance company.
QualiTest offers quality assurance and software testing services, and is
committed to the highest standards of quality in every project.