Hello folks, Let’s dig into What is Appium? The definition says it is a cross-platform, open-source tool. The main purpose was to test an application on multiple devices. Hence, the best part is that we can automate native, web, and hybrid mobile applications. Therefore, it supports Android, iOS, and Windows desktop platforms.
Features
- Firstly, it allows testing of all three mobile applications, namely: native, hybrid, and mobile web
- It allows users to run automated tests on tangible devices, simulators as well as emulators
- After that, it is free and open-source
- therefore, it is a Cross-browser platform
- Henceforth, it supports various automation testing tools. This makes migration of any project a breeze
- Finally, the community is very vast. This helps in debugging and troubleshooting any concerns and bugs.
How does it work?
The core components are:
- Client-server architecture
- Appium Desktop
- Session
- Appium Clients
- Desired capabilities
- Appium Server
It is an HTTP server that is based on javascript. It follows a client-server architecture. Processes the request from the client and forwards it to the simulator/emulator/real device. The test scripts are automated and the result is communicated back to the client via the server.

Appium Server
In conclusion, Appium is a NodeJS–based web server that exposes REST APIs and bridges commands to native frameworks from vendors (Google, Apple)
Appium Client
For instance, appium listens to the client in different languages, which exposes actions and behavior for automation.
Session
Hence, each action in Appium happens under the context of a session. Therefore, we start the session with an object called desired capabilities. This helps to connect with the exact type of connection that is expected.
Desired Capabilities
Desired Capabilities is a class used to declare a set of basic requirements such as combinations of browsers, operating systems, browser versions, etc. to perform automated cross-browser testing of a web application
Prerequisite and installation
Following are the prerequisite installation needed to run this successfully
- Install ANDROID SDK
- JDK
- Eclipse
https://www.eclipse.org/downloads/packages/installer
- Install selenium server JAR
- APK app info
https://play.google.com/store/apps/details?id=com.wt.apkinfo&hl=en_IN&gl=US
- Appium desktop
Limitations
- Does not support testing of Android Version lower than 4.2
- Limited support for hybrid app testing. e.g.: not possible to test the switching action of applications from the web app to native and vice-versa.
- No support to run Inspector on Microsoft Windows.
References
https://www.browserstack.com/guide/download-and-install-appium


