With the ever increasing use of Mobile technology, testing also must continue with the related hardware and software complexities in terms of both volume and variety. At now , test automation seems to be the sole solution available to manage things . Appium Training is one such open source test automation tool used for native and hybrid applications on Android and iOS platforms. Appium is additionally a cross browser test automation tool which will be used for writing test for multiple platforms using an equivalent API. This also facilitates code reuse.

Appium has three main components - The Appium Server, Inspector and Doctor.

Appium is essentially a webserver that works through REST API. This exposes tons of possibilities like test cases are often written in any language that has an HTTP client API.

Here automation is performed mainly in sessions. Clients initiate a session with the server and send a JSON object and therefore the server starts up an automation session that responds with a session ID that for sending further commands.

A set of keys and values are used for notifying the Appium server about the sort of automation session required to be found out . Defining various values can can change the server behavior as per the wants .

The Appium server is written in node.js. The capabilities of the server are often modified as per the test requirements.

Appium client libraries are available in Java, Ruby, PHP, Python, JavaScript and C#.

The Appium GUI wrappers are available with all the artifacts required to run the Appium server.
In iOS, Appium proxies the commands to UIAutomation script running within the Mac Instruments environment. Instruments is an app provided by Apple which has an automation component. Here, commands are often written in JavaScript using UIAutomation APIs to interact with the App UI. Appium utilizes these libraries to automate iOS Apps.

In the iOS command life cycle, the web driver picks the command from the code and sends it in the form of JSON through an HTTP request to the Appium server which then sends the command to the Instruments command server. The command server waits for the Instruments command client to receive it and execute it in bootstrap.js. Once the command is executed, the command client sends the message back to the Appium server which logs all the knowledge associated with the command.

The same principle is applied in Android also . Here, Appium proxies command to a UIAutomator test suit running on the device. UIAutomator is Android's native UI automation framework. It runs jUnit test cases directly into the device through the instruction .

Here, bootstrap.jar represents the test suit when it's compiled in java. Here, the TCP server resides within the device and therefore the client is within the Appium process.


With continuous advancements in mobile technology, high performance applications are required to be designed and developed as fast as possible. Testing them is even more important before launching them, especially for those apps which perform critical functions. Test automation helps to make sure high performance of an application during a short period. Appium promises efficient bug free and quality rich applications saving tons of your time , labor and price of the project.

Author's Bio: