Welcome to Perusal


Perusal Tech Pvt Ltd
  • 01 May, 2021



APPIUM is a freely distributed open-source test automation tool used for mobile application UI Testing Framework. Or in other words, it is an open-source automation mobile testing tool, which is used to test the application. It allows users to test several types of mobile applications such as Native, Hybrid and Mobile Web using standard WebDriver library and supports automation test on physical devices as well as an emulator or simulator both. It offers a “cross-platform tool” i.e. it allows you to write tests on multiple platforms like iOS, Android, Windows by using the same APIs.

Multiple devices can be easily tested by Appium in parallel. It is not dependent on mobile device OS as it has wrapper or Framework that translate Selenium Webdriver commands into UIAutomator (Android) or UIAutomation (iOS) commands depending on the device type, not any OS type. Previously, this tool mainly focused on IOS and Android applications that were limited to mobile application testing only. Few updates back, Appium declared that it would now support desktop application testing for windows as well. It is way more similar to the Selenium Webdriver testing tool. So, if you already know how to use Selenium Webdriver, Appium becomes very easy to learn. Appium supports all languages that have Selenium client libraries such as C#, Python, Ruby, PHP, JavaScript with node.js, Objective-C, Java, etc. By using Appium, you can also run automated tests on actual devices like mobile phones, tablets, etc. Selenium is known to be the backend of Appium that provides control over the functionality of Selenium for testing needs.

The demand for mobile applications is high, in today’s Development area. Currently, people are converting their websites into mobile apps. Therefore, it is very necessary to know about mobile software automation testing technology and also stay connected with new technology. Appium is a mobile application testing tool that is currently trending in Mobile Automation Testing Technology.


(1) THE APPIUM DESKTOP : Appium provides the users with a graphical user interface wrapper that can be downloaded on various operating systems, such as, iOS, Windows and Android. You need to worry about nodes, as it comes as a complete package. When running tests, you can cheque out the hierarchy of your app, using the inspector that comes along with the package itself.

(2) THE APPIUM SERVER : When we download the Appium application, we basically download the server. The Appium Server has been programmed using Node js and implements Selenium WebDrive. It allows developers to the use of in-built WebDriver client for launching tests, following that, your mobile application starts acting like a web application, where the DOM is represented by View hierarchy.

(3) APPIUM CLIENTS : Most of the programming languages have client libraries that support Appium’s extensions to access the WebDriver protocol like Java, PHP, Ruby, Python, JavaScript, and C#. You should use these client libraries instead of your regular WebDriver client while using Appium.

(4) MAINTAINING SESSIONS : Automation can be scheduled the best in the context of a session. The clients have to initiate a session with the server in a specific way for each library, but they end up sending a POST session request to the server, instead, along with a JSON object known as the ‘desired capabilities’ object. In such cases, the server begins an automated session and responds with a session ID, which is used for transmitting further commands.

(5) DESIRED CAPABILITIES : A set of keys and values are created using a map or a hashmap; these are known as Desired capabilities. They are transmitted to the server to create customised sessions according to the developers’ needs. There are also dynamic desired capabilities, which can modify the behaviour of the server while automated testing is going on. For instance, we might set the “platform-name” as iOS to create an iOS session, instead of Windows and Android.

(6) THE APPIUM CLIENT/SERVER ARCHITECTURE : In the core, Appium is a web server that exposes any REST API. It establishes a connection with the client, captures the commands, executes those commands on a physical device, and sends the result of the command execution via an HTTP response. Using the traditional client/server combination opens up a lot of possibilities for the developer, we can run tests in any programming language that includes an HTTP client API. However, Appium client libraries can be considered as they are easier to use. We may place the server on a machine, other than our test machine. We can even use any cloud services like Sauce Labs to capture and interpret the commands by just writing test codes.


(1) Appium has multi-platform support i.e., it can run the same test cases on multiple platforms.

(2) Appium reduces the testing time by allowing the parallel execution of test scripts.

(3) Appium does not need any application source code or library.

(4) Appium provides a strong and active community.

(5) Appium supports several kind of languages like C#, Python, Java, Ruby, PHP, JavaScript with node.js, and many others that have Selenium client library.

(6) In Appium, a small change does not require re-installation of the application.

(7) It allows testing of all three mobile applications, namely: native, hybrid, and mobile web.

(8) It allows user to run automated tests on tangible devices, simulators as well as emulators.

(9) It allows user to perform tests against heterogeneous platforms, namely: Android, iOS and Windows.


(1) Not only it’s free of cost, but also an open source.

(2) Appium can test any mobile application whether it be a native one, a hybrid one or even a web app.

(3) There is no need for Application Source Code.

(4) Appium’s philosophy believes in testing an application without reinstalling it and modifying it in any way.

(5) Appium as a framework is also supported by various automation testing tools out there, just to make migration of any project a breeze.


(1) Appium is an open-source tool, which means it is freely available. It is easy to install.

(2) Unlike other testing tools, you do not need to include any additional agents in your app to make Appium compatible with automation. It tests the same app, which is going to upload in App Store.

(3) It allows the automated testing of hybrid, native, and web applications.

(4) Appium is a cross-platform, freely available mobile testing tool, which allows us the cross-platform mobile testing. This means you can test on multiple platforms (single API for both Android and IOS platforms).

(5) An additional feature added to Appium. Now it would support desktop application testing for windows as well along with mobile application testing.


(1) Since the tests depend on the remote web driver, so it is a bit slow.

(2) In iOS, only one instance (iOS Script) can run on one Mac OS device, which means one test can be executed at a time per Mac. If you want to run your tests on multiple iOS devices at the same time, you need to arrange the same number of Mac machines. But it would be expensive to arrange various Mac machines.

(3) Appium has limited support for hybrid app testing. You will not be able to test the action that allows switching of applications from native to web app and from web app to native.

(4) It is not a limitation, but an overhead that Appium uses UIAutomator for Android that only supports Android SDK, API 16, or higher. However, Appium supports older APIs, but not directly. It uses another open-source library Selendroid to support older APIs.

(5) It takes a lot of time to configure appium for both android and iOS.

* To be continued.